国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使Laravel篩選查詢更優(yōu)雅的插件l5-repository

chuyao / 3221人閱讀

摘要:是一個(gè)優(yōu)雅的框架,但并不代表你寫的業(yè)務(wù)代碼也同樣優(yōu)雅。這里提到了兩個(gè)插件,主要介紹下后者,改動(dòng)的部分可以很好支持此插件。控制器控制器方面只需簡(jiǎn)單的行即可,插件會(huì)解析請(qǐng)求參數(shù),但是解析的是特定形式的查詢參數(shù),如。

Laravel是一個(gè)優(yōu)雅的框架,但并不代表你寫的業(yè)務(wù)代碼也同樣優(yōu)雅。
你的代碼中是否還存在如下類似代碼:

//是否綁定
if (isset($param["bind"]) and $param["bind"] != "-1") {
    $t  = $param["bind"] == 1 ? "!=" : "=";
    $rs = $rs->where("user_id", $t, 0);
}


//是否激活
if (isset($param["active_time"]) and $param["active_time"] != "-1") {
    $t  = $param["active_time"] == 1 ? ">=" : "<";
    $rs = $rs->where("active_time", $t, "1999-01-01");
}


if (isset($param["dealer"]) && !empty($param["dealer"])) {
    $rs = $rs->whereHas("dealer", function ($query) use ($param) {
        $query->where("name", "like", "%".$param["dealer"] . "%")
        ->orWhere("dealer_id", "=", $param["dealer"]);
    });
}

當(dāng)業(yè)務(wù)需求要加多個(gè)查詢條件的時(shí)候,往往需要改前端頁面和后端頁面,前端加input框,后端加if條件。

本文分享下l5-repository(原作者) / l5-repository(本文作者改后)插件,ps:雖然目前原作者已不維護(hù)了,不過貌似招了些自愿者去維護(hù),不影響基本使用。這里提到了兩個(gè)l5插件,主要介紹下后者,改動(dòng)的部分可以很好支持此插件。

repository模式

此插件實(shí)現(xiàn)了repository層,業(yè)務(wù)邏輯相關(guān)的代碼放在repository中實(shí)現(xiàn),所有的repository繼承公共repository,公共repository繼承PrettusRepositoryEloquentBaseRepository,repository模式不了解的點(diǎn)這里。

控制器

控制器方面只需簡(jiǎn)單的2行即可,插件會(huì)解析請(qǐng)求參數(shù),但是解析的是特定形式的查詢參數(shù),如: /users?search=user_name:133;created_at:2018-01-01,2018-01-17&searchFields=user_name:like;created_at:between

public function index(Request $request)
{
    $this->userRepository->pushCriteria(new RequestCriteria($request));
    $users= $this->userRepository->paginate();
}
視圖

視圖方面原作者只是舉了幾個(gè)例子,并沒提供相關(guān)js去拼成后端識(shí)別的格式,所以想依靠控制器兩行代碼簡(jiǎn)化查詢還得做些工作,本文作者不忍心這插件由于這點(diǎn)瑕疵而棄用,于是自己fork了個(gè)然后寫了一坨jquery去支持它。于是,視圖代碼如下即可:

{{-- 搜索本表的user_name字段 data-search-type="like":模糊搜索 --}}

{{-- 搜索關(guān)聯(lián)表的聯(lián)系電話字段 --}}

{{-- 創(chuàng)建區(qū)間查詢 created_at between "2018-01-01" and "2018-01-17" --}}

寫的那段jquery便可自動(dòng)將表單參數(shù)拼成l5-repositoy識(shí)別的格式,后續(xù)加新的篩選條件只要前端加input即可。

結(jié)語

第一次分享技術(shù)文,有寫的不到位的地方歡迎指出,謝謝~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28166.html

相關(guān)文章

  • 下載量最高「50 」個(gè) Laravel 擴(kuò)展包

    摘要:簡(jiǎn)介另一個(gè)令人喜歡的地方,是擁有活躍的開發(fā)者社區(qū),而活躍的開發(fā)者社區(qū)帶來的,是繁華的擴(kuò)展包生態(tài)該項(xiàng)目統(tǒng)計(jì)了目前下載量最高的個(gè)擴(kuò)展包。記得喲相信下面這些擴(kuò)展包會(huì)讓你的編碼更加高效。排名下載量排名包地址下載次數(shù)描述圖片處理。 簡(jiǎn)介 Laravel 另一個(gè)令人喜歡的地方,是擁有活躍的開發(fā)者社區(qū),而活躍的開發(fā)者社區(qū)帶來的,是繁華的擴(kuò)展包生態(tài) ———— @Summer 該項(xiàng)目統(tǒng)計(jì)了目前 pack...

    liaorio 評(píng)論0 收藏0
  • Laravel Telescope:優(yōu)雅應(yīng)用調(diào)試工具

    摘要:文章轉(zhuǎn)自視頻教程優(yōu)雅的應(yīng)用調(diào)試工具新擴(kuò)展是由和開源的應(yīng)用的調(diào)試工具。計(jì)劃任務(wù)列出已運(yùn)行的計(jì)劃任務(wù)。該封閉函數(shù)會(huì)被序列化為一個(gè)長(zhǎng)字符串,加上他的哈希與簽名如出一轍該功能將記錄所有異常,并可查看具體異常情況。事件顯示所有事件的列表。 文章轉(zhuǎn)自:https://laravel-china.org/topics/19013視頻教程:047. 優(yōu)雅的應(yīng)用調(diào)試工具--laravel/telesco...

    MasonEast 評(píng)論0 收藏0
  • 2015 年度小結(jié)(技術(shù)方面)

    摘要:因?yàn)槁酚蓪用媸軜I(yè)務(wù)影響很大,經(jīng)常修改一些功能的行為,所以后來大部分測(cè)試都是針對(duì)層面的單元測(cè)試。在我了解的過程中,我發(fā)現(xiàn)中文網(wǎng)絡(luò)上對(duì)的討論非常分散,于是我創(chuàng)建了中文社區(qū),到年末已經(jīng)有個(gè)注冊(cè)用戶和個(gè)帖子了。 https://jysperm.me/2016/02/programming-of-2015/ 從 2014 年末開始開發(fā)的一個(gè)互聯(lián)網(wǎng)金融項(xiàng)目終于在今年三月份上線了,這是一個(gè) Node...

    宋華 評(píng)論0 收藏0
  • 2015 年度小結(jié)(技術(shù)方面)

    摘要:因?yàn)槁酚蓪用媸軜I(yè)務(wù)影響很大,經(jīng)常修改一些功能的行為,所以后來大部分測(cè)試都是針對(duì)層面的單元測(cè)試。在我了解的過程中,我發(fā)現(xiàn)中文網(wǎng)絡(luò)上對(duì)的討論非常分散,于是我創(chuàng)建了中文社區(qū),到年末已經(jīng)有個(gè)注冊(cè)用戶和個(gè)帖子了。 https://jysperm.me/2016/02/programming-of-2015/ 從 2014 年末開始開發(fā)的一個(gè)互聯(lián)網(wǎng)金融項(xiàng)目終于在今年三月份上線了,這是一個(gè) Node...

    Nosee 評(píng)論0 收藏0
  • Laravel關(guān)聯(lián)模型中過濾結(jié)果為空結(jié)果集(has和with區(qū)別)

    摘要:但有些結(jié)果不是我想要的注意返回了為空的數(shù)據(jù)記錄中有的有記錄,有的為空。它會(huì)有兩條查詢,第一條查主數(shù)據(jù),第二條查關(guān)聯(lián),這里第二條如下如果第二條為空,主記錄的關(guān)聯(lián)字段就是。 首先看代碼: $userCoupons = UserCoupons::with([coupon => function($query) use($groupId){ return $query->select(...

    Songlcy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<