MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

problema de relacionamento hasMany em Laravel 5.3 + biblioteca MongoDB 'jensegers/laravel-mongodb'


no Mongo Eloquent ao criar relacionamentos de muitos para muitos você não precisa ter uma tabela dinâmica, isso é mentalidade SQL, em relações de muitos para muitos mongo-eloquent as chaves estrangeiras são armazenadas em arrays.Então os modelos devem ficar assim:
<?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');
    }
}  

Além disso, você deve carregar as relações antes de tentar recuperá-las
 $employee= Employee::with('tasks')->find('586ca8c71a72cb07a681566d')->tasks;

Você pode salvar a relação da mesma forma que você faz na relação hasMany
$employee->tasks()->save(new Task());