laravel 模糊查找

maogu8个月前Laravel118
public function index(Request $request)
    {
        // 创建一个查询构造器
        $builder = Product::query()->where('on_sale', true);
        // 判断是否有提交 search 参数,如果有就赋值给 $search 变量
        // search 参数用来模糊搜索商品
        if ($search = $request->input('search', '')) {
            $like = '%'.$search.'%';
            // 模糊搜索商品标题、商品详情、SKU 标题、SKU描述
            $builder->where(function ($query) use ($like) {
                $query->where('title', 'like', $like)
                    ->orWhere('description', 'like', $like)
                    ->orWhereHas('skus', function ($query) use ($like) {
                        $query->where('title', 'like', $like)
                            ->orWhere('description', 'like', $like);
                    });
            });
        }

        // 是否有提交 order 参数,如果有就赋值给 $order 变量
        // order 参数用来控制商品的排序规则
        if ($order = $request->input('order', '')) {
            // 是否是以 _asc 或者 _desc 结尾
            if (preg_match('/^(.+)_(asc|desc)$/', $order, $m)) {
                // 如果字符串的开头是这 3 个字符串之一,说明是一个合法的排序值
                if (in_array($m[1], ['price', 'sold_count', 'rating'])) {
                    // 根据传入的排序值来构造排序参数
                    $builder->orderBy($m[1], $m[2]);
                }
            }
        }

        $products = $builder->paginate(16);

        return view('products.index', ['products' => $products]);
    }


相关文章

递归循环无限分类

public function create() {     $data =array();   &nb...

微信开发者账户申请以及测试

微信公众平台测试账号申请公众平台测试账号十分方便,直接通过微信登录即可,登录地址登录后我们可以看到 appId 和 appsecret我们需要关注自己的测试公众号,只有关...

laravel 本地储存文件

$path= Storage::disk('public')->put('file.jpg',$value['ImgUrl']);...

Laravel Eloquent: 使用 hasMany 来处理『无限极分类』

在网上商城上,我们经常可以看到多级分类、子分类、甚至无限极分类。本文将向你展示如何优雅的通过 Laravel Eloquent 将其实现。我们会创建一个微型项目来展示儿童商店的分类...

Intervention/image 图片处理

Route::get('/', function () { $lists = [ "https://w.66mh.xyz/imagesw/...

php时间差计算

   $one = strtotime($attendance->created_at);     &...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。