【发布时间】:2014-01-18 15:45:50
【问题描述】:
有没有办法做类似的事情?
Picture::with('gallery')->where('gallery.path', $galleryPath)->first();
它应该搜索一条记录,但查询将应用于它的关系。
【问题讨论】:
标签: model laravel relationship
有没有办法做类似的事情?
Picture::with('gallery')->where('gallery.path', $galleryPath)->first();
它应该搜索一条记录,但查询将应用于它的关系。
【问题讨论】:
标签: model laravel relationship
如果您使用的是 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();
【讨论】:
我相信你要找的是Eager Load Contraints
您可以使用函数回调例如指定关系的条件
Picture::with(array('gallery' => function($query)
{
$query->where('path', $galleryPath);
}))->get();
【讨论】:
whereHas 方法,该方法应该返回至少有一个具有指定条件的画廊的图片记录。