我有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
。
我缺少什么?
答案 0 :(得分:0)
$project->pivot->username
需要您的数据透视表中的username
字段。仅当您希望获得数据透视表的->withPivot('id');
列时才需要id
,$project->pivot->id
将提供该值。
如果您想从用户表中获取用户名,则不需要透视。
$projectsAsFreelancer = App\Project::where('assignedTo',$id)->get();
foreach($projectsAsFreelancer as $project)
{
echo $project->name;
foreach($project->users as $user)
{
echo $user->username;
}
}
答案 1 :(得分:0)
请勿使用get()
。它无法获取关系。您可以使用first()
或find()
(如果您想使用主键选择)
$projectsAsFreelancer = App\Project::where('assignedTo',$id)->first();
foreach ($projectsAsFreelancer->users as $user) {
//var_dump($user->username);
}