我有3个模型,例如:模型1,模型2,模型3。
Model-2和Model-3有多对多的关系,所以我保留了一个像Model-2_Model-3这样的透视表。
模型1与模型2有一种关系,我列出了模型1中的所有数据,
我需要从pivot表中搜索一列来列出Model-1。
例如:
$data = Model-1::with('Model-2')->get();我需要使用数据透视表(Model-2_Model-3)搜索Model-1。
我已经返回了pivot连接代码。Pivot运行得很好。
发布于 2019-03-25 20:33:41
您可以使用wherePivot()查询透视表
Model-1::with('Model-2')->wherePivot('field_name', $value)->get();如果未添加透视值,则需要将其添加为withPivot('field_name')
发布于 2019-03-25 23:25:11
你可能喜欢使用contains,因为对于多对多关系,你会得到第二个模型的集合,比如$user->roles,所以你可以在这里检查$user->roles->contains('field_name')。以及$user->roles()->wherePivot('role_id', 1)->get()->isEmpty()或$user->roles()->wherePivot('role_id', 1)->get(),视您的需求而定。
https://stackoverflow.com/questions/55337717
复制相似问题