如何从数据透视表中获取额外的字段 - laravel

时间:2017-08-10 11:59:15

标签: php laravel laravel-5 laravel-eloquent

我为laravel创建了一个Pivot模型和表格,并为枢轴模型添加了额外的字段。但是在调用数据透视数据时没有显示额外的字段。

我有一个客户模型和标签模型。还有一个名为CustomerTag的支点 创建了一个带有标签的用户,并使用

为数据透视表添加了额外的恶魔
INotifyPropertyChanged

但是当我调用结果时

$user = User::create([
     'name' => 'User 1'
]);
$tag = 1;

$user->tags()->attach($tag, ['priority' => 1]);

结果没有$use = User::find($id); dd($user->tags->pivot); 字段。

2 个答案:

答案 0 :(得分:4)

在用户模型上建立关联时,您必须调用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;
}

答案 1 :(得分:0)

在多对多关系标签中有多个结果

尝试

dd($user->tags[0]->pivot);

或使用循环

 foreach ($user->tags as $tag){
    dd($tag->pivot);
 }