我有定义了适当的belongsTo / hasMany关系的模型,我想根据连接表的属性查询一个表。如果我在查询中定义连接,我可以这样做,但是我能做些什么,以便每次我想在模型上查询关系时都不必定义连接?
操作性的例子。除非我定义了一个连接,否则以下内容不起作用:
FileAssociation::with('file')->where('files.file_type_version_id', $file->file_type_version_id)->get()
答案 0 :(得分:1)
我认为你想要的是Eager Load Constraints,基本上你可以做到这一点
FileAssociation::with(array('file' => function($query)
{
$query->where('file_type_version_id',$file->file_type_version_id);
}))->get();
上的文档
修改强>
如果您现在使用的是Laravel 4.1,则只有在至少有一个“文件”时才能返回whereHas()
,才能访问FileAssociation
方法
FileAssociation::whereHas('file' => function($query)
{
$query->where('file_type_version_id',$file->file_type_version_id);
})->get();
上的文档