繁体   English   中英

Laravel 5.4:多对多的数据透视表记录

[英]Laravel 5.4 : Many to many pivot table records

我有UserProject模型。

这种关系很多很多。

public function projects()
{
    return $this->belongsToMany('App\Project')->withPivot('id');;
}

Project模型中我有:

public function users()
{
    return $this->belongsToMany('App\User')->withPivot('id');;
}

现在我在做什么:

$projectsAsFreelancer = App\\Project::where('assignedTo',$id)->get();

我想要的是得到username来自users的用户,谁已经发布的项目表。 Project表示projects表有forign_key - > employeer_id

目前$project->pivot->username给我错误。

pivot表名称是project_user

我错过了什么?

$project->pivot->username需要数据透视表中的username $project->pivot->username段。 ->withPivot('id'); 只有当你想获得数据透视表的id列时才需要, $project->pivot->id wil给出值。

如果您想从用户表中获取用户名,则不需要透视。

$projectsAsFreelancer = App\Project::where('assignedTo',$id)->get();
foreach($projectsAsFreelancer as $project)
{ 
    echo $project->name;
    foreach($project->users as $user)
     {
         echo $user->username;
      }
}

不要使用get() 它无法获取关系。 你可以使用first()find() (如果你想用主键选择)

$projectsAsFreelancer = App\Project::where('assignedTo',$id)->first();
foreach ($projectsAsFreelancer->users as $user) {
    //var_dump($user->username);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM