Я пытаюсь использовать отношение ownToMany следующим образом: Модель с отношением assignToMany:
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
class Notification extends \Jenssegers\Mongodb\Eloquent\Model
{
use Notifiable, HasApiTokens;
protected $collection = 'myDb.notifications';
protected $fillable = [ ];
protected $hidden = [ ];
/**
* List of involved users
*/
public function participants()
{
return $this->belongsToMany(User::class);
}
}
Создание модели:
$notification=new Notification();
....
$notification->participants()->attach(["5b13fb4393782d5e9010835d","5b13146f93782d29254c8cb2"]);
$notification->save();
Дает:
{
......
"user_ids": [
"5b13fb4393782d5e9010835d",
"5b13146f93782d29254c8cb2"
],
"updated_at": "2018-06-07 12:32:19",
"created_at": "2018-06-07 12:32:19",
"_id": "5b1925d393782d24b4514a16"
}
Таким образом, идентификаторы прикрепляются правильно, однако, когда я пытаюсь их загружать с помощью:
Notification::where('_id','=','5b1925d393782d24b4514a16')->with(['participants'])->get()
Я получаю пустой массив для отношения:
[
{
"_id": "5b1925d393782d24b4514a16",
....
"updated_at": "2018-06-07 12:32:19",
"created_at": "2018-06-07 12:32:19",
"participants": []
}
]
Я также проверил, что данные пользователи действительно существуют и должны быть «загружаемыми», используя:
User::whereIn('_id',["5b13fb4393782d5e9010835d","5b13146f93782d29254c8cb2"])->get()
, что дает двум пользователям ожидаемое значение.