【问题标题】:Dingo API, use Database Query BuilderDingo API,使用数据库查询生成器
【发布时间】:2016-06-06 17:52:06
【问题描述】:

有谁知道如何将 Eloquent Query Builder 与 Dingo API 一起使用?

使用开箱即用的 Eloquent,效果很好:

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

然后在我的模型中,我可以使用查询生成器:

use Illuminate\Database\Capsule\Manager as Capsule;

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

我知道我可以使用 Eloquent 获得相同的结果,但它只适用于简单查询:

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

现在有了 Dingo API,当我想使用查询生成器时,我收到了以下错误消息:

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

我猜这与我从未在 app/bootstrap.php 文件中调用过的 setAsGlobal 方法有关。我只有这个:

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

// $app->withFacades();

$app->withEloquent();
...

【问题讨论】:

  • 我认为我们需要查看更多特定于您的 Dingo API 的代码。是use Illuminate\Database\QueryBuilder\ 吗?

标签: eloquent laravel-5.2 laravel-query-builder dingo-api lumen-5.2


【解决方案1】:

我想这是因为我正在使用需要照明/数据库的流明:https://github.com/laravel/lumen-framework/blob/5.2/composer.json

但是,稳定模式下的 Dingo API 不需要照明/数据库。会不会是这个原因?所需的包不是自动“sub”需要的?

【讨论】:

    【解决方案2】:

    我明白了。这只是关于外墙。

    取消注释 app/bootstrap.php 中的行以使用 Facades:

    $app->withFacades();
    

    现在,我可以使用 Facade 'DB' 和查询生成器...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 2020-07-01
      • 2016-08-24
      • 2019-08-19
      • 2021-10-04
      相关资源
      最近更新 更多