php - Laravel:如何在具有引用表的两个表之间建立关系

标签 php mysql laravel laravel-5

我有 3 张 table 。

人员、任务和项目

each person in People table can be assigned to one or more Projects. Each project in Projects table can have one ore more person assigned to it.

以下是每个表的列:

人物

  • ID
  • 姓名

作业:

  • person_id
  • project_id

项目

  • ID
  • 标题

我的问题是:在我的项目模型中,如何定义关系?

我想要的是能够获取分配给特定项目的所有人员的姓名。

我需要:

$project->assignedPeople

所以我可以:

foreach($projects as $project)
$project->title
  foreach(projects->assignedPeople as $person)
  $person->name

我需要你的帮助 谢谢!

最佳答案

实际上你需要多对多关系。

您可以像这样定义模型

项目模型

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->peoples as $person) {
        echo $person->name;
    }
}

希望它能解决您的问题。

谢谢

关于php - Laravel:如何在具有引用表的两个表之间建立关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36762802/

相关文章:

mysql - 如何计算mysql innodb表中一行的磁盘空间使用情况

php - Electron 应用程序显示子进程错误,它不起作用

php - Laravel Schema : Null default, 更新时间戳

javascript - DOMDocument -> 无法从 href 提取结果

PHP、MySQL基于外部排序派优化排序

php - 运行 script.php 时出错 : Port 9000 is busy

php - 如何制作像gmail 和facebook 那样的交互式 uploader ?

php - DataTable 1.10.15 表显示所有结果,而不是在 PHP 中显示 10 行

php - 选择 Next mysql row without reference id

mysql - Laravel 上的原始查询在哪里?