MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

problème de relation hasMany dans Laravel 5.3 + bibliothèque MongoDB 'jenssegers/laravel-mongodb'

dans Mongo Eloquent lors de la création de relations plusieurs à plusieurs, vous n'avez pas besoin d'avoir un tableau croisé dynamique, c'est l'état d'esprit SQL, dans les relations mongo-éloquentes plusieurs à plusieurs, les clés étrangères sont stockées dans des tableaux.Ainsi, les modèles devraient ressembler à ceci :

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

Aussi, vous devez charger les relations avant d'essayer de les récupérer

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

Vous pouvez enregistrer la relation de la même manière que vous le faites dans la relation hasMany

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