Eloquent我可以在哪里提到模型关系?

时间:2013-12-13 18:35:26

标签: php orm laravel eloquent

我有定义了适当的belongsTo / hasMany关系的模型,我想根据连接表的属性查询一个表。如果我在查询中定义连接,我可以这样做,但是我能做些什么,以便每次我想在模型上查询关系时都不必定义连接?

操作性的例子。除非我定义了一个连接,否则以下内容不起作用:

FileAssociation::with('file')->where('files.file_type_version_id', $file->file_type_version_id)->get()

1 个答案:

答案 0 :(得分:1)

我认为你想要的是Eager Load Constraints,基本上你可以做到这一点

FileAssociation::with(array('file' => function($query)
{
  $query->where('file_type_version_id',$file->file_type_version_id);
}))->get(); 

查看Eager Loading

上的文档

修改

如果您现在使用的是Laravel 4.1,则只有在至少有一个“文件”时才能返回whereHas(),才能访问FileAssociation方法

FileAssociation::whereHas('file' => function($query)
{
  $query->where('file_type_version_id',$file->file_type_version_id);
})->get(); 

查看Quering Relations

上的文档