這篇文章主要介紹laravel查詢不再需要寫大量if else判斷的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計,蓬江網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蓬江等地區(qū)。蓬江做網(wǎng)站價格咨詢:18982081108
公司主要業(yè)務(wù)使用是的PHP 語言開發(fā),用的laravel 框架,在做一些列表過濾查詢常常會出現(xiàn)如下很難維護的代碼:
//若干代碼 根據(jù)參數(shù)執(zhí)行不同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); }]);
如果可以將這些查詢進行配置起來,根據(jù)配置來查詢數(shù)據(jù),而不是在代碼中直接通過if來判斷,這樣代碼會優(yōu)雅一些。我自己開發(fā)一個服務(wù)包laravel-query-builder。
laravel-query-builder 是laravel框架根據(jù)已有配置來執(zhí)行查詢條件構(gòu)造器服務(wù)包
composer require zyimm/laravelquery-builder
{ "require": { "php": ">=7.0", "fideloper/proxy": "^4.0", "laravel/framework": ">=5.5" } }
/** // 目前支持條件操作符 '=', '<>', '>', '>=', '<', '<=', 'like', 'full_like', 'in', 'not_in', 'between', 'not_between' **/ use Illuminate\Support\Facades\DB; use zyimm\query\build\QueryWhere; /** * @var QueryWhere $build */ $build = app('QueryWhere'); //提交過來數(shù)據(jù) $data = [ 'log_id' => 20, 'user_id'=> 'zyimm', 'user_name' => "zyimm,12" ]; //配置數(shù)據(jù)庫字段查詢操作 $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'
這些標識符支持數(shù)組和字
符串,字符串可選 ','和'.'作為分隔符。
以上是“l(fā)aravel查詢不再需要寫大量if else判斷的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享名稱:laravel查詢不再需要寫大量ifelse判斷的示例分析
本文地址:http://www.chinadenli.net/article2/pejioc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、ChatGPT、面包屑導航、網(wǎng)站營銷、營銷型網(wǎng)站建設(shè)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)