我有一个多对多的关系,表上有一个附加值列。我该如何选择这个价值?所以......
pivot_table
- user_id
- something_id
- value
模型User
:
return $this->belongsToMany('Something', 'user_something')->withPivot('value');
现在,我想获得一个id为2的用户的值。
这样的事情:
$user = User::find(1);
$user->something->whereSomethingId(2)->pivot->value;
答案 0 :(得分:1)
你可以试试这个:
$user->something->find(2)->pivot->value;
由于something
是一个集合,因此我们可以使用find($id)
方法来获取项目id
。此外,您可以使用filter(callback)
方法使用循环过滤集合并在每个循环中运行回调(在filter
方法中作为参数传递),例如:
$user->something->filter(function($item){
// $item is an object from the collection
// So, you may use: $item->pivot->value
});
您还可以阅读this article。