2 回答

TA贡献1804条经验 获得超7个赞
不幸的是,没有办法呼吁paginate()收集。您可以手动对收集结果进行分页或修改您的查询并使用addSelect或orderByRaw包含变异值:
use Illuminate\Support\Facades\DB;
Product::select('*', DB::raw('(sell_price - ((discount * sell_price) / 100)) AS price'))
->orderBy('price')
->paginate(9);
顺便说一句,如果您的折扣是一个常数值,我认为您将得到相同的结果来按sell_price列而不是price变异值排序,所以请尝试orderBy('sell_price')代替sortBy('price'):
Product::with(['firstImage', 'category'])
->orderBy('sell_price')
->paginate(9);
Laravel 文档:https ://laravel.com/docs/master/queries#ordering-grouping-limit-and-offset

TA贡献1784条经验 获得超7个赞
您必须使用paginate(9)afterorderBy()函数。所以你必须像这样编辑第二个代码:
private function search()
{
return Product::with(['firstImage', 'category'])
->orderBy('price')->paginate(9);
}
- 2 回答
- 0 关注
- 135 浏览
添加回答
举报