MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

hasMany problema di relazione in Laravel 5.3 + libreria MongoDB 'jensegers/laravel-mongodb'

in Mongo Eloquent quando si creano relazioni da molti a molti non è necessario disporre di una tabella pivot, questa è la mentalità SQL, in mongo-eloquente relazioni da molti a molti le chiavi esterne sono archiviate in array.Quindi i modelli dovrebbero assomigliare a questo:

<?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');
    }
}  

Inoltre dovresti caricare le relazioni prima di provare a recuperarle

 $employee= Employee::with('tasks')->find('586ca8c71a72cb07a681566d')->tasks;

Puoi salvare la relazione nello stesso modo in cui lo fai nella relazione hasMany

$employee->tasks()->save(new Task());