0

Кто-нибудь знает, как я могу использовать Eloquent Query Builder с Dingo API?Dingo API, используйте Database Query Builder

Использование красноречивый из коробки, он работает прекрасно:

use Illuminate\Database\Capsule\Manager as Capsule; 

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

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

А потом в моей модели, я могу использовать Query Builder:

use Illuminate\Database\Capsule\Manager as Capsule; 

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

Я знаю, что я могу использовать красноречивый чтобы получить тот же результат, но он будет работать только с легким запросом:

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

Теперь с API-интерфейсом Dingo, когда Я хочу использовать Query Builder Я получил сообщение об ошибке:

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

Я думаю, что это связано с setAsGlobal методом , что я никогда не называется в моем приложение/bootstrap.php файл. У меня есть только это:

... 
$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../') 
); 

// $app->withFacades(); 

$app->withEloquent(); 
... 
+0

Я думаю, что мы необходимо увидеть больше кода, специфичного для вашего Dingo API. Использует ли он 'Illuminate \ Database \ QueryBuilder \? –

ответ

0

У меня есть. Речь шла только о Фасадах.

раскомментируйте строчку в приложение/bootstrap.php использовать фасады:

$app->withFacades(); 

Теперь я могу использовать фасад 'DB' и поэтому Query Builder ...

0

Я предполагаю, что это, как я использую люмен, которые требуют освещение/баз данных: https://github.com/laravel/lumen-framework/blob/5.2/composer.json

Однако Динго API в стабильном режиме, не требует ILLUMINATE/баз данных. Это может быть причина? Необходимые пакеты не являются автоматическими «под»?

Смежные вопросы