/ / API Dingo, utilisez Database Query Builder - éloquent, laravel-5.2, constructeur de requêtes, dingo-api, lumen-5.2

API Dingo, utilisez Database Query Builder - éloquent, laravel-5.2, constructeur de requêtes, dingo-api, lumen-5.2

Est-ce que quelqu'un sait comment puis-je utiliser Eloquent Query Builder avec Dingo API?

En utilisant Eloquent hors de la boîte, cela fonctionne très bien:

use IlluminateDatabaseCapsuleManager as Capsule;

$capsule = new Capsule;
$capsule->addConnection([ ... ]);

$capsule->setAsGlobal(); // Make this Capsule instance available globally via static methods
$capsule->bootEloquent(); // Setup the Eloquent ORM

Et puis dans mon modèle, je peux utiliser le Générateur de requêtes:

use IlluminateDatabaseCapsuleManager as Capsule;

Capsule::table("users")->where(...)->select(Capsule::raw("AVG(rating) AS avg_rating"))->first()->avg_rating;

Je sais que je peux utiliser Eloquent pour obtenir le même résultat, mais cela ne fonctionnera qu'avec une requête simple:

User::where(..)->selectRaw(...)->first()->avg_rating;

Maintenant, avec l’API Dingo, lorsque je veux utiliser le Générateur de requêtes, j’ai le message d’erreur suivant:

Fatal error: Call to a member function connection() on null

Je suppose que cela est lié à la setAsGlobal méthode que je n'ai jamais appelé dans mon app / bootstrap.php fichier. J'ai seulement ceci:

...
$app = new LaravelLumenApplication(
realpath(__DIR__."/../")
);

// $app->withFacades();

$app->withEloquent();
...

Réponses:

0 pour la réponse № 1

Je suppose que c’est comme j’utilise la lumière que je dois utiliser illuminate / database: https://github.com/laravel/lumen-framework/blob/5.2/composer.json

Cependant, les API Dingo en mode stable ne nécessitent pas illuminate / database. Cela pourrait-il être la raison? Les paquets requis ne sont pas automatiquement "sub" requis?


0 pour la réponse № 2

J? ai compris. Il ne s'agissait que de façades.

Décommentez la ligne dans app / bootstrap.php utiliser Façades:

$app->withFacades();

Maintenant, je peux utiliser la façade "DB" et donc le constructeur de requêtes ...