Laravel雄辩与枢轴表

时间:2016-11-25 11:36:37

标签: laravel

我有这种表关系:

enter image description here

我已经在模型中正确地建立了所有关系,但我不知道如何从worktypes表中获取名称

当我做的时候

dd($shift->shift_workers);

我明白了:

enter image description here

但我还想以某种方式从每个工人的工作类型表中获取名称......

这应该以某种方式用Pivot()函数做什么? 所以我可以这样:

$foreach ($shift->shift_workers as $w => $worker)
    echo $worker->name;

但我不知道怎么做......任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

显然和逻辑上应该跳过数据透视表,以便通过以下方式实现结果:

$worker->worktypes->first()->name; // to get the name of the first work type
$worker->worktypes->pluck('name'); // to get all names as an array

要获得此结果,请按照Laravel's naming convention并正确设置模型关系。

  1. 将您的worker_worktype_pivot表重命名为worker_worktype
  2. Worker模型中设置关系:
  3. `

    class Worker extends Model {
        ...
        public function workTypes()
        {
            return $this->belongsToMany(WorkType::class);
        }
    }