如何使用第二个表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();