php - tutorial - where in laravel eloquent



Laravel+Jenssegers \ Mongodb: 'WhereHas' y 'Has' devuelve colección vacía (0)

Actualmente, estoy trabajando en dos modelos, Form y Notification , y una relación muchos a muchos está configurada y funciona para la mayoría de los comandos Eloquentes, a excepción de whereHas y has . Ambos solo devuelven una matriz vacía, [] .

Parece que el desarrollador ha tenido problemas para hacer que esto funcione en el pasado , pero parece que lo ha resuelto aquí .

Aquí hay una muestra de lo que tengo hasta ahora, y lo que he intentado:

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;
    }

}

Obtengo el mismo resultado si uso Notification::has('form')->get() .

Entonces mi pregunta es:

¿Es posible usar whereHas y has en Jenssegers\Mongodb Eloquent ? ¿Tengo que usar una sintaxis diferente a la documentación oficial de Laravel, o tengo que hacer una consulta de Mongo sin procesar para esto?





jenssegers-mongodb