iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >laravel查询不再需要写大量if else判断的示例分析
  • 452
分享到

laravel查询不再需要写大量if else判断的示例分析

2023-06-14 11:06:54 452人浏览 薄情痞子
摘要

这篇文章主要介绍laravel查询不再需要写大量if else判断的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!laravel 查询不在需要写大量if else 判断了,只需要配置一下即可。背景公司主要业务

这篇文章主要介绍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

/ 目前支持条件操作符    '=',    '<>',    '>',    '>=',    '<',    '<=',    'like',    'full_like',    'in',    'not_in',    'between',    'not_between'**/use Illuminate\Support\Facades\DB;use zyimm\query\build\QueryWhere;$build = app('QueryWhere');//提交过来数据$data = [    'log_id' => 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());

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

以上是“laravel查询不再需要写大量if else判断的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: laravel查询不再需要写大量if else判断的示例分析

本文链接: https://www.lsjlt.com/news/270094.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • laravel查询不再需要写大量if else判断的示例分析
    这篇文章主要介绍laravel查询不再需要写大量if else判断的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!laravel 查询不在需要写大量if else 判断了,只需要配置一下即可。背景公司主要业务...
    99+
    2023-06-14
  • php中不要省略if后大括号的示例分析
    这篇文章主要为大家展示了“php中不要省略if后大括号的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中不要省略if后大括号的示例分析”这篇文章吧...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作