データの検索
データベースの操作で必須となるのは検索です。検索とは特定の条件に合致したデータを抽出する処理のことです。データベースは検索ができるようになっています。また、Laravelもデータベースの検索をサポートしています。
ダミーデータの作成
今回はmembersテーブルを作成します。membersテーブルは以下のようになっています。
カラム名 | 内容 |
name | メンバーの名前 |
メンバーのメールアドレス | |
age | メンバーの年齢 |
以下のコマンドで、モデルとマイグレーションファイルを作成します。
php artisan make:model Member -m
マイグレーションファイルは以下のようにします。
Schema::create('members', function (Blueprint $table) {
$table->id();
$table->string("name");
$table->string("email")->unique();
$table->tinyInteger("age");
$table->timestamps();
});
モデルファイルは以下のようにします。
protected $fillable = [
"name",
"email",
"age",
];
以下のコマンドでマイグレーションを実行します。
php artisan migrate
次に、tinkerを使用してダミーデータを生成します。tinkerとは対話型のシェルで、コマンドを打ち込むとすぐに実行されるシステムです。Laravelの関数やメソッドの挙動の確認やテストなどに用いると便利です。PHPサーバーにログインし、以下のコマンドでtinkerを起動します。
php artisan tinker
次に、以下のコマンドで、いくつかのダミーデータを入力します。
#メンバー1
$sato = new Member();
$sato->name = "sato";
$sato->email = "sato@example.com";
$sato->age = 21;
$sato->save();
#メンバー2
$tanaka = new Member();
$tanaka->name = "tanaka";
$tanaka->email = "tanaka@example.com";
#tanaka->age = 17;
$tanaka->save();
#メンバー3
$suzuki = new Member();
$suzuki->name = "suzuki";
$suzuki->email = "suzuki@example.jp";
$suzuki->age = 30;
$suzuki->save();
new Member()でメンバーモデルのインスタンスを生成し、プロパティに値を代入した後、saveメソッドでデータベースに保存しています。
次にデータの取得、検索を行ってみます。以下のコマンドを実行し、どのようなデータが取得できるか確認します。
#全件取得
$members = Member::all();
#1件取得
$member = Member::find(1);
#where検索 nameの一致検索
$member_where_name = Member::where("name", "sato")->get();
#where検索 ageの条件検索 18歳以上
$member_where_age = Member::where("age", ">=", 18)->get();
#LIKE検索 あいまい検索 .jpを持つメールアドレスの検索
$member_like_email = Member::where("email", "LIKE", "%.jp%")->get();
全件取得では、allメソッドを使用することで取得できます。1件取得では、findメソッドに取得したいデータのidを指定します。whereメソッドを使用した検索ではwhereメソッド内に、検索したいカラム名と条件式、検索したいキーワードを指定することで使用できます。条件式がしていない場合はイコールと認識されます。LIKE検索はいわゆるあいまい検索で、%で囲ったキーワードに一部一致するデータを取得できます。
ほかにも検索には様々な機能がありますが、今回はこれだけにします。
今回はデータの検索について解説しました。今回解説したもので、一通りの検索はできると思いますが、ほかにも機能があるので、調べてみてください。
前:データの削除