如何从 pivot table - laravel 获取额外字段
How to get extra fields from pivot table - laravel
我已经为 laravel 创建了一个 Pivot 模型和 table,并向 Pivot 模型添加了额外的字段。但是在调用数据透视表时没有显示额外的字段。
我有一个客户模型和标签模型。还有一个名为 CustomerTag 的数据透视表
使用
创建了一个带有标签的用户并添加了额外的恶魔到枢轴table
$user = User::create([
'name' => 'User 1'
]);
$tag = 1;
$user->tags()->attach($tag, ['priority' => 1]);
但是当我调用结果时
$use = User::find($id);
dd($user->tags->pivot);
结果没有 priority
字段。
在用户模型上建立关联时必须调用withPivot
函数:
public function tags()
{
return $this->belongsToMany(Tag::class, 'customer_tag', 'user_id', 'tag_id')
->withPivot('priority');
}
然后在得到结果的时候调用:
$tags = $user->tags;
foreach ($tags as $tag) {
$priority = $tag->pivot->priority;
}
在多对多关系标签中有多个结果
尝试
dd($user->tags[0]->pivot);
或使用循环
foreach ($user->tags as $tag){
dd($tag->pivot);
}
我已经为 laravel 创建了一个 Pivot 模型和 table,并向 Pivot 模型添加了额外的字段。但是在调用数据透视表时没有显示额外的字段。
我有一个客户模型和标签模型。还有一个名为 CustomerTag 的数据透视表 使用
创建了一个带有标签的用户并添加了额外的恶魔到枢轴table$user = User::create([
'name' => 'User 1'
]);
$tag = 1;
$user->tags()->attach($tag, ['priority' => 1]);
但是当我调用结果时
$use = User::find($id);
dd($user->tags->pivot);
结果没有 priority
字段。
在用户模型上建立关联时必须调用withPivot
函数:
public function tags()
{
return $this->belongsToMany(Tag::class, 'customer_tag', 'user_id', 'tag_id')
->withPivot('priority');
}
然后在得到结果的时候调用:
$tags = $user->tags;
foreach ($tags as $tag) {
$priority = $tag->pivot->priority;
}
在多对多关系标签中有多个结果
尝试
dd($user->tags[0]->pivot);
或使用循环
foreach ($user->tags as $tag){
dd($tag->pivot);
}