![](/img/trans.png)
[英]Laravel 5.4 One to Many relationship (check if record exist in pivot table)
[英]Laravel 5.4 : Many to many pivot table records
我有User
和Project
模型。
这种关系很多很多。
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.