【问题标题】:Why get returns 10 items, but paginate returns no items?为什么 get 返回 10 个项目,但 paginate 不返回任何项目?
【发布时间】:2020-05-15 22:37:22
【问题描述】:

主要问题似乎是分页,导致相同的代码 ->get 返回一些项目,但 ->paginate 什么也不返回。


$products = DB::table('categories_products')
    ->leftJoin('categories', 'categories_products.categories_id', '=', 'categories.id')
    ->leftJoin('products', 'categories_products.products_id', '=', 'products.id')
    ->select('categories_products.categories_id as c_id', 
                'categories.name as c_name', 
                'categories.img as c_img', 
                'categories_products.products_id as p_id', 
                'products.name as p_name', 
                'products.img as p_img');

if(request()->has('category')){
    $products = $products->where('c_id', request('category'));
}

$products = $products->orderBy('p_name')->groupBy('p_id')->paginate(9)
        ->appends(['category' => request('category')]);

dd($products);
  • 预期结果:
    • 项目:10,
    • 页数:2;
  • 代码结果:
    • 项目:0,
    • 页数:1;

paginate->appends 更改为 ->get

$products = $products->orderBy('p_name')->groupBy('p_id')->paginate(9)
        ->appends(['category' => request('category')]);

dd($products);

$products = $products->orderBy('p_name')->groupBy('p_id')->get();

dd($products);
  • 返回:
    • 项目:10;

【问题讨论】:

  • 请添加代码而不是屏幕截图
  • 这个问题你不会得到任何答案。请以文本形式发布您的代码和结果以及您期望的结果。

标签: php laravel pagination


【解决方案1】:

设法使它工作。必须删除其中一个连接。
我认为问题出在 SQL 选择上。
我的猜测是它不喜欢 SQL 连接或重命名列名。



    $products = DB::table('products')
        ->leftJoin('categories_products', 'products.id', '=', 'categories_products.products_id');


    if(request()->has('category')){
        $products = $products->where('categories_id', request('category'));
    }


    $products = $products->groupBy('products_id')->paginate(9)
            ->appends(['category' => request('category')]);


    dd($products);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2022-10-23
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多