首页 文章

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

提问于
浏览
0

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

例如 . 以下不起作用,除非我定义一个连接:

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

1 回答

  • 1

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

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

    查看Eager Loading上的文档

    Edit

    如果您现在使用的是Laravel 4.1,则只有在至少有一个"file"的情况下才能返回 FileAssociation ,才能访问 whereHas() 方法

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

    查看Quering Relations上的文档

相关问题