我有3个模型,例如:Model-1,Model-2,Model-3。
Model-2和Model-3有很多关系,所以我保留了一个像Model-2_Model-3这样的数据透视表。
Model-1与model-2有一个关系,我列出了来自model-1的所有数据,
我需要从数据透视表中搜索一列来列出Model-1。
对于Eg:
$data = Model-1::with('Model-2')->get();
我需要使用数据透视表(Model-2_Model-3)搜索Model-1。
我已经返回了枢轴连接代码。 Pivot工作得很好。
您可以使用wherePivot()
查询数据透视表
Model-1::with('Model-2')->wherePivot('field_name', $value)->get();
如果未添加透视值,则需要将其添加为withPivot('field_name')
你可能想使用contains
,因为你会得到像$user->roles
这样的第二个模型的集合,所以在这里你可以检查$user->roles->contains('field_name')
。以及$user->roles()->wherePivot('role_id', 1)->get()->isEmpty()
或$user->roles()->wherePivot('role_id', 1)->get()
取决于您的要求。