sql >> Base de Datos >  >> NoSQL >> MongoDB

problema de relación hasMany en Laravel 5.3 + biblioteca MongoDB 'jenssegers/laravel-mongodb'

en Mongo Eloquent al crear relaciones de muchos a muchos, no necesita tener una tabla dinámica, esa es la mentalidad de SQL, en mongo-eloquent relaciones de muchos a muchos, las claves externas se almacenan en matrices. Entonces, los modelos deberían verse así:

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

También debe cargar las relaciones antes de intentar recuperarlas

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

Puede guardar la relación de la misma manera que lo hace en la relación hasMany

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