如何使用第二个表Laravel在哪里?

如何使用第二个表Laravel在哪里?,laravel,laravel-5,laravel-5.4,Laravel,Laravel 5,Laravel 5.4,我有以下疑问: $objects = Object::with("prototypes"); 如您所见,我确实请求建模对象,并将其与原型连接起来 原型表具有以下结构: prototype_id name 如何在上述查询中设置where,如下所示: $objects = Object::with("prototypes")->where("prototype_id", 3); 对象模型: public function prototypes() { return $th

我有以下疑问:

$objects = Object::with("prototypes");
如您所见,我确实请求建模
对象
,并将其与
原型
连接起来

原型
表具有以下结构:

prototype_id
name
如何在上述查询中设置
where
,如下所示:

$objects = Object::with("prototypes")->where("prototype_id", 3);
对象模型:

  public function prototypes()
 {
     return $this->belongsToMany('App\Prototype', 'object_prototype', 'object_id');
 }
原型模型:

 public function objects(){
   return $this->belongsToMany("App\Object", "object_prototype", "prototype_id", "object_id");
 }

再加上@Jerodev-answer

如果您需要更多电源,您可以使用Where has和
或where has
方法,用于在has查询中放置“where”条件。 这些方法允许您将自定义约束添加到 关系约束,例如检查注释的内容:

你可以阅读更多关于

在您的例子中,您还可以像这样构造一个查询

Object::whereHas('prototypes', function ($query)){
  $query->where('prototype_id', 3);
})->get();

如果在雄辩的模型中正确设置了关系,则可以使用该函数查询关系是否存在

$objects = Object::with('prototypes')
    ->whereHas('prototypes', function ($query) {
        $query->where('prototype_id', 3);
    })
    ->get();

它不起作用,因为字段
prototype\u id
不在对象中Model@Garaman我明白了。你能提供这些表格之间的关系吗?更新的问题更新了我的答案
$objects = Object::with('prototypes')
    ->whereHas('prototypes', function ($query) {
        $query->where('prototype_id', 3);
    })
    ->get();