laravel查询不再需要写大量if else判断了!

下面由laravel教程栏目给大家介绍《laravel查询不在需要写大量ifelse判断了,只需要配置一下即可 》,希望对需要的朋友有所帮助!

laravel查询不再需要写大量if else判断了!

背景

公司主要业务使用是的PHP 语言开发,用的laravel 框架,在做一些列表过滤查询常常会出现如下很难维护的代码:

        //若干代码 根据参数执行不同where        if (request('has_score')) {            $article = $article->with(['scores' => function ($query) {                $query->where('type', self::TYPE);                $query->with('user');            }]);        }        if (has_module('Audit')) {            $article = $article->with(['auditing' => function ($query) {                $query->orderBy('id', 'desc');            }]);        }        $article = $article->with(['videos' => function ($query) {            $query->where('type', VIDEO);        }])->with(['audios' => function ($query) {            $            query->where('type', AUDIO);        }]);

解决

如果可以将这些查询进行配置起来,根据配置来查询数据,而不是在代码中直接通过if来判断,这样代码会优雅一些。我自己开发一个服务包laravel-query-builder。

laravel-query-builder 是laravel框架根据已有配置来执行查询条件构造器服务包

Install

composer require zyimm/laravelquery-builder

Require

    {      "require": {          "php": ">=7.0",          "fideloper/proxy": "^4.0",          "laravel/framework": ">=5.5"        }      }

Usage

/**// 目前支持条件操作符    '=',    '',    '>',    '>=',    '<',    ' 20,    'user_id'=> 'zyimm',    'user_name' => "zyimm,12"];//配置数据库字段查询操作$condition =[    '=' => [        'log_id'    ],    'not_in' => [        'user_id'    ],    'between' => [        'user_name'    ],    'full_like' => [        'user_id'    ],    '' => [        'user_id'    ],    '>' => [        'user_id'    ]];DB::enableQueryLog();//model\App\Models\Log::query()    ->where(function ($query) use ($build, $data, $condition){        $build->buildQueryWhere($data ,$condition, $query);    })->get();dd(DB::getQueryLog());

生成SQL查询记录如下截图:
e392e07f1c354d894842ae15f3c1bca.png

蓝心千询 蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

蓝心千询 34 查看详情 蓝心千询

提示:  
'in','not_in','between','not_between'这些标识符支持数组和字
符串,字符串可选 ‘,’和’.’作为分隔符。

就是这样简单可以方便我们的代码变得优雅一些!

项目地址

Tip:laravel-query-builderp(https://github.com/zyimm/laravel-query-builder)

相关推荐:最新的五个Laravel视频教程

以上就是laravel查询不再需要写大量if else判断了!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/483875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

关于作者

上一篇 2025年11月8日 12:32:01
下一篇 2025年11月8日 12:33:21

相关推荐

发表回复

登录后才能评论
关注微信