代码之家  ›  专栏  ›  技术社区  ›  noufalcep XcentY

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

  •  1
  • noufalcep XcentY  · 技术社区  · 9 年前

    我有一个客户模型和标签模型。和一个名为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 回复  |  直到 9 年前
        1
  •  7
  •   halfer Jatin Pandey    8 年前

    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;
    }
    
        2
  •  0
  •   Sharad Kale    9 年前

    尝试

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

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