MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

hasMany-Beziehungsproblem in Laravel 5.3 + MongoDB-Bibliothek ‚jenssegers/laravel-mongodb‘

In Mongo Eloquent benötigen Sie beim Erstellen von Many-to-Many-Beziehungen keine Pivot-Tabelle, das ist SQL-Denkweise. In Mongo-Eloquent werden Many-to-Many-Beziehungen die Fremdschlüssel in Arrays gespeichert.Die Modelle sollten also so aussehen:

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

Außerdem sollten Sie die Relationen laden, bevor Sie versuchen, sie abzurufen

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

Sie können die Relation genauso speichern wie die hasMany-Relation

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