gpt4 book ai didi

php - Laravel paginate() 不限制结果。

转载 作者:行者123 更新时间:2023-11-30 00:03:44 27 4
gpt4 key购买 nike

我有一个包含超过 10k 行的表。我需要显示结果,并打算使用 paginate() 来帮助加载。但是,当调用查询时,所有结果都会被调用,而不仅仅是受 paginate() 限制。

   $category = Inventory::join('inventory_categories', 'inventory.sku', '=', 'inventory_categories.sku')
->select('inventory_images.image', 'inventory.id' , 'inventory.sku', 'inventory.name', 'inventory.price', 'inventory_categories.category')
->leftJoin('inventory_images', 'inventory.sku', '=', 'inventory_images.sku')
->where('inventory_categories.category', 'LIKE', '%'.$cat.'%')
->where('inventory.active', '=', '0')
->where('inventory.stock_quantity', '>', 2)
->paginate(16);

在执行 Event::listen 查询时,我得到以下返回:注意缺少 Limit。

array (size=4)
0 => string 'select count(*) as aggregate from `inventory` inner join `inventory_categories` on `inventory`.`sku` = `inventory_categories`.`sku` left join `inventory_images` on `inventory`.`sku` = `inventory_images`.`sku` where `inventory_categories`.`category` LIKE ? and `inventory`.`active` = ? and `inventory`.`stock_quantity` > ?' (length=321)
1 =>
array (size=3)
0 => string '%SOMETHING%' (length=11)
1 => string '0' (length=1)
2 => int 2
2 => float 82325.11
3 => string 'mysql' (length=5)

该表有 30,606 种满足此查询的产品。所以它基本上是在显示页面之前加载每一行,这需要永远(我认为数组中的浮点是它所花费的时间)。我需要限制结果并正确显示分页。我尝试使用 take() 但没有成功。这是 Laravel 4.2.2 的新功能吗?因为我很确定这个用法在过去可以正常工作,没有任何问题。但我必须检查我的旧项目才能确定。

最佳答案

我可以通过为每个表向 Mysql 数据库添加复合索引来使其工作。

关于php - Laravel paginate() 不限制结果。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24787352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com