我有3张桌子。
人员,作业和项目
人员表中的每个人都可以分配到一个或多个项目。 “项目”表中的每个项目都可以分配一个或多个人。
以下是每个表的列:
人
作业:
项目
我的问题是:在我的项目模型中,我该如何定义关系?
我想要的是能够获得分配给特定项目的所有人的姓名。
我需要:
$project->assignedPeople
所以我可以:
foreach($projects as $project)
$project->title
foreach(projects->assignedPeople as $person)
$person->name
我需要你的帮助 谢谢!
答案 0 :(得分:1)
实际上你需要多对多的关系。
您可以像这样定义模型
项目模型
class Project extends Model {
public function peoples()
{
return $this->belongsToMany('App\People');
}
}
和
人物模型
class People extends Model {
public function projects()
{
return $this->belongsToMany('App\Project');
}
}
现在,您可以访问分配给特定项目的所有人员的姓名。
$project->peoples
你可以像这样运行你的foreach循环
foreach($projects as $project) {
echo $project->title;
foreach(project->people as $person) {
echo $person->name;
}
}
希望它可以解决您的问题。
由于
答案 1 :(得分:0)
Inside Model Project
class Projects extends Model {
public function people()
{
return $this->hasMany('App\People');
}
}
Inside Model People
class People extends Model {
public function project()
{
return $this->belongsToMany('App\Project');
}
}
In case of custom joining table:
class People extends Model {
public function project()
{
return $this->belongsToMany('App\Project', 'Assignments', 'person_id', 'project_id');
}
}