Mongo Eloquentでは、多対多の関係を作成するときに、SQLの考え方であるピボットテーブルを用意する必要はありません。mongo-eloquentの多対多の関係では、外部キーは配列に格納されます。したがって、モデルは次のようになります。
<?php namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Employee extends Eloquent {
protected $collection = 'employee';
protected $primaryKey = '_id';
public function tasks()
{
return $this->belongsToMany('App\Models\Task');
}
}
<?php namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Task extends Eloquent {
protected $collection = 'task';
protected $primaryKey = '_id';
public function employees()
{
return $this->belongsToMany('App\Models\Employee');
}
}
また、リレーションを取得する前に、リレーションをロードする必要があります
$employee= Employee::with('tasks')->find('586ca8c71a72cb07a681566d')->tasks;
hasManyリレーションで行うのと同じ方法でリレーションを保存できます
$employee->tasks()->save(new Task());