Intereting Posts

Laravel + Jenssegers \ Mongodb: «WhereHas» и «Has» возвращает пустую коллекцию

Я в основном работаю над двумя моделями прямо сейчас, Form и Notification , а отношение «многие ко многим» настраивается и работает для большинства команд «Красноречивый», за исключением whereHas и has . Оба просто возвращают пустой массив, [] .

Похоже, у разработчика возникли проблемы с тем, что он работал в прошлом , но, похоже, решил его здесь .

Вот пример того, что у меня есть до сих пор, и то, что я пробовал:

form.php

 class Form extends Eloquent { protected $connection = 'mongodb'; public function notifications(){ return $this->belongsToMany('App\Api\Forms\Notification', null, 'form_ids', 'notification_ids'); } } 

Notification.php

 class Notification extends Eloquent { protected $connection = 'mongodb'; public function forms() { return $this->belongsToMany('App\Api\Forms\Form', null, 'notification_ids', 'form_ids'); } } 

NotificationController.php

 <?php namespace App\Http\Controllers; use App\Api\Forms\Notification; use App\Api\Forms\Form; class NotificationController extends Controller { public function getByFormTitle($form_title) { // This code retuns the relationship as expected. // Any forms that are assigned to it are returned. // $n = Notification::first(); // $n->forms()->get(); // This also returns the relationship correctly, same as before. // $f = Form::first(); // $f->notifications()->get(); // Nearly identical to the Laravel docs. This returns an empty array, [] $notifications = Notification::whereHas('forms', function ($query) use ($form_title) { $query->where('form_title', $form_title); })->get(); return $notifications; } } 

Я получаю тот же результат, если я использую Notification::has('form')->get() .

Поэтому мой вопрос:

Можно ли использовать whereHas и has в Jenssegers\Mongodb Eloquent ? Должен ли я использовать другой синтаксис, чем официальная документация Laravel для него, или я должен сделать для него необработанный запрос Mongo?