Heim >PHP-Framework >Denken Sie an PHP >Verwendung des ThinkPHP6-Suchers
Wenn wir eine Suche mit mehreren Bedingungen durchführen, können wir die traditionelle Array-Methode verwenden. Heute stelle ich Ihnen eine weitere vor, nämlich den ThinkPHP6-Sucher.
1. Verstehen Sie die Definition des Suchers
Schauen wir uns zunächst die Beschreibung des Suchers im Handbuch an.
Die Funktion des Suchers besteht darin, den Abfragebedingungsausdruck des Felds (oder Suchbezeichners) zu kapseln. Ein Sucher entspricht einer speziellen Methode (die Methode muss vom öffentlichen Typ sein). Die Konvention lautet: :
search FieldName Attr
FieldName ist die Camel-Case-Konvertierung des Datentabellenfelds, und der Sucher wird nur ausgelöst, wenn die withSearch-Methode aufgerufen wird.
2. Suchbedingungen festlegen
Wie verwende ich den Sucher? Lassen Sie es uns anhand von Beispielen erklären.
Wir haben drei Suchbedingungen: Warenkategorie-ID (Kategoriefilterung), Warenstatus (Statusfilterung), Warenname (Schlüsselwortfilterung).
Wir erstellen zunächst drei Suchmethoden:
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.'%'); }
Achten Sie besonders auf die Benennung der Suchmethoden, wir müssen uns strikt an die Definitionen im offiziellen Handbuch halten. Wenn das Suchfeld unserer Datentabelle beispielsweise „goods_cate_id“ lautet, ist bei der Definition der Methode Folgendes falsch:
1 öffentliche Funktion searchGoodsCateId($query, $value), weniger Attr.
2. Öffentliche Funktion searchGoodsCateIDAttr($query, $value), der Kamelfall ist falsch geschrieben.
3. Öffentliche Funktion searchGoodsCateAttr($query, $value), die ID wird falsch in Groß-/Kleinschreibung geschrieben.
4. Die private Funktion searchGoodsCateIdAttr($query, $value) muss öffentlich sein.
3. Suche auslösen
Sucher Nur wird ausgelöst, wenn die withSearch-Methode aufgerufen wird.
$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);
Zusätzlich zur Suche kann der Sucher auch Sortierfunktionen ausführen, daher werde ich hier kein Beispiel geben.
Während des Debuggens können wir die SQL-Anweisung auch drucken. Wenn wir kein gewünschtes Ergebnis haben, können wir die SQL-Anweisung direkt analysieren.
echo Goods::getLastSql();
Das Obige ist die Erklärung zur Verwendung der ThinkPHP6-Suchmaschine. Bei der Suche mit mehreren Bedingungen können Sie eine beliebige Option verwenden oder entsprechend Ihrer eigenen Situation auswählen.
Das obige ist der detaillierte Inhalt vonVerwendung des ThinkPHP6-Suchers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!