Laravel 複数テーブル結合クエリの実装方法【基本と応用】
Laravelの多対多の関連クエリは、Eloquent ORMを使用して実装することができます。以下に、postsとcommentsという2つのテーブルがあると仮定して、それぞれのpostと関連するすべてのcommentsをクエリする例を示します。
// 在Post模型中定义关联关系
class Post extends Model
{
public function comments()
{
return $this->hasMany(Comment::class);
}
}
// 在Comment模型中定义关联关系
class Comment extends Model
{
public function post()
{
return $this->belongsTo(Post::class);
}
}
// 在控制器中进行联合查询
$posts = Post::with('comments')->get();
// 遍历结果
foreach ($posts as $post) {
echo $post->title;
foreach ($post->comments as $comment) {
echo $comment->content;
}
}
上記のコードでは、Eloquent ORMのwithメソッドを使用して関連するデータを取得しています。モデル間の関連関係を定義することで、簡単に複数のテーブルの結合クエリを実行できます。