2017-08-10 49 views
1

我已经为laravel创建了一个数据透视模型和表格,并在透视模型中添加了额外的字段。但是当调用数据透视表时,额外的字段不会显示。如何从数据透视表中获得额外的字段 - laravel

我有一个客户模型和标签模型。而一个名为CustomerTag 支点创造了标签用户使用

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

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

但是,当我打电话结果

$use = User::find($id); 
dd($user->tags->pivot); 

结果没有priority场增加了额外的恶魔到数据透视表。

回答

2

你必须调用建立用户模型的关联时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; 
} 
0

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

尝试

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

或使用循环

foreach ($user->tags as $tag){ 
    dd($tag->pivot); 
} 
相关问题