Laravel查询模型关系

时间:2013-12-31 18:39:32

标签: model laravel relationship

有没有办法做类似这样的事情?

Picture::with('gallery')->where('gallery.path', $galleryPath)->first();

它应该搜索记录,但查询将应用于其关系。

2 个答案:

答案 0 :(得分:3)

如果您使用的是Laravel 4.1:

$picture = Picture::whereHas('gallery', function($q) use ($galleryPath)
{
    $q->where('path', $galleryPath);

})->first();

Laravel 4:

$picture = Picture::with(array('gallery' => function($q) use ($galleryPath)
 {
   $q->where('path', $galleryPath); 
 }))->first();

答案 1 :(得分:0)

我相信你要找的是Eager Load Contraints

您可以使用函数回调来指定关系的条件,例如

Picture::with(array('gallery' => function($query) 
 {
   $query->where('path', $galleryPath); 
 }))->get();