- テーブルの連結(JOIN):
Eloquentでは、
join
メソッドを使用して複数のテーブルを連結することができます。以下は、users
テーブルとposts
テーブルを連結する例です。
$posts = DB::table('users')
->join('posts', 'users.id', '=', 'posts.user_id')
->select('users.*', 'posts.title', 'posts.body')
->get();
この例では、users
テーブルとposts
テーブルをuser_id
カラムを基準に連結しています。select
メソッドを使用して、取得するカラムを指定しています。
- リレーションの使用:
Eloquentでは、関連するモデル間でリレーションを定義することができます。例えば、
User
モデルとPost
モデルがあり、User
とPost
は1対多の関係にあるとします。
class User extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
このようにリレーションを定義することで、User
モデルから関連するPost
モデルを簡単に取得できます。
$user = User::find(1);
$posts = $user->posts;
この例では、IDが1のUser
モデルを取得し、そのユーザーに関連するすべてのPost
モデルを取得しています。
- 検索クエリの組み立て:
Eloquentでは、検索クエリを柔軟に組み立てることができます。以下は、
users
テーブルからname
カラムが「John」という値を含むユーザーを検索する例です。
$users = User::where('name', 'like', '%John%')->get();
この例では、where
メソッドを使用して検索条件を指定しています。like
演算子と%
記号を使用することで、部分一致検索を行っています。
これらは、Laravel Eloquentで連結と検索を行うための基本的な方法の一部です。他にもさまざまな機能や方法がありますので、公式ドキュメントを参照してさらに学習することをおすすめします。