ThinkPHP6搜索器的使用方法-創(chuàng)新互聯(lián)

這篇文章主要介紹了ThinkPHP6搜索器的使用方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

十載的石鼓網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整石鼓建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“石鼓網(wǎng)站設(shè)計(jì)”,“石鼓網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一、了解搜索器的定義

我們依然先看看手冊(cè)中關(guān)于搜索器的說明。

搜索器的作用是用于封裝字段(或者搜索標(biāo)識(shí))的查詢條件表達(dá)式,一個(gè)搜索器對(duì)應(yīng)一個(gè)特殊的方法(該方法必須是 public 類型),方法命名規(guī)范為:

search FieldName Attr

FieldName 為數(shù)據(jù)表字段的駝峰轉(zhuǎn)換,搜索器僅在調(diào)用 withSearch 方法的時(shí)候觸發(fā)。

二、建立搜索條件


如何使用搜索器?我們結(jié)合實(shí)例來講解。

ThinkPHP6搜索器的使用方法

我們有三個(gè)搜索條件分別是:goods_cate_id(分類篩選)、goods_status(狀態(tài)篩選)、goods_name(關(guān)鍵字篩選)。

我們先建立三個(gè)搜索方法:


public function searchGoodsCateIdAttr($query, $value)
    {
        $query->where('goods_cate_id','in', $value);
    }

    public function searchGoodsStatusAttr($query, $value)
    {
        $query->where('goods_status','=', $value);
    }

    public function searchGoodsNameAttr($query, $value)
    {
        $query->where('goods_name','like', '%'.$value.'%');
    }

要特別注意,搜索方法的命名,我們必須嚴(yán)格按照官方手冊(cè)中的要求定義。比如說我們數(shù)據(jù)表搜索字段為goods_cate_id,那么在定義方法的時(shí)候如下都是錯(cuò)誤的:

1、public function searchGoodsCateId($query, $value),少Attr。

2、public function searchGoodsCateIDAttr($query, $value),駝峰寫法錯(cuò)誤。

3、public function searchGoodsCateAttr($query, $value),少Id駝峰寫法錯(cuò)誤。

4、private function searchGoodsCateIdAttr($query, $value),必須是public。

三、觸發(fā)搜索

搜索器只有在調(diào)用 withSearch 方法的時(shí)候觸發(fā)。

$goodsData=Goods::name('goods')->withSearch(['goods_cate_id','goods_status','goods_name'],[
                'goods_cate_id'=>$cateChilerenId,
                'goods_status'=>$goods_status,
                'goods_name'=>$goods_name
            ])->paginate(10);

另外,搜索器除了可以做搜索,同時(shí)也可以做排序功能,在這里就不再舉例。

在調(diào)試的時(shí)候,我們還可以打印下sql語句,如果沒有我們想要的結(jié)果,我們可以直接分析sql語句。

echo Goods::getLastSql();

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“ThinkPHP6搜索器的使用方法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

網(wǎng)站欄目:ThinkPHP6搜索器的使用方法-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article18/dsgggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)、云服務(wù)器自適應(yīng)網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)