php - 无法使用 laravel Eloquent 地获取数据

标签 php mysql laravel laravel-5 eloquent

我想要的是,当用户访问此链接时 /api/bonus?provider[]=MyCompany 结果将仅显示 providers=[MyCompany] 提供的奖金。

在我的 Controller 中:

public function all(Request $request)
{
    $size = $request->input('size');

    $bonus = Bonus::with('category', 'bonus');
    $bonus = Filterer::apply($request, $size, $bonus);

 $bonus = Filterer::apply($request, $size, $bonus);

        return response()->json([
            'code' => 0,
            'success' => true,
            'data' => BonusResource::collection($bonus),

我的预期结果是获得等于 [MyCompany] 的所有提供者 但不知何故,这个查询不起作用。

过滤器

public static function apply(Request $filters, $size, $bonus)
{
     if ($filters->has('provider')) {
                $bonus->whereHas('bonus', function ($query) use ($filters) {
                    $query->whereIn('providers', $filters->input('provider',[]));

                });
            }
return $bonus->paginate($size);
}

但最后我得到了这个结果。数据为空 []。

enter image description here

我想知道为什么我无法获取数据。我哪里做错了?

最佳答案

要实际获得结果,您应该使用一些从数据库中获取数据的函数,例如 getfirst(取决于您是想获取多行还是仅获取第一行).现在你只准备应该执行的查询但你永远不会执行它,所以你应该改变行:

$bonus = Filterer::apply($request, $size, $bonus);

进入

$bonus = Filterer::apply($request, $size, $bonus);
$bonus = $bonus->get();

执行查询并获取结果。

关于php - 无法使用 laravel Eloquent 地获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57546754/

相关文章:

php - 如何选择文本框中的特定文本

php - 在应用程序服务器上缓存 sql 查询输出

php - 错误 "Query was empty"

laravel - 在 laravel Blade 文件中检查变量是否为空

php - 安全: Form Submission + javascript/jQuery

php - Symfony2 - 如何在自定义控制台命令中访问服务?

php - 获取所选列的数据或内容

mysql - 检查另一个表中行的单个 MySQL 查询

php - Laravel 数据库连接 : Selecting from database name in snake case

mysql - 比较时间戳和 Carbon::now()->toTimeString()(不带秒)