Maison  >  Article  >  cadre php  >  Utilisation du moteur de recherche ThinkPHP6

Utilisation du moteur de recherche ThinkPHP6

王雪芹
王雪芹original
2020-06-26 17:17:343680parcourir

Lorsque nous effectuons une recherche multi-conditions, nous pouvons utiliser la méthode traditionnelle des tableaux. Aujourd'hui, je vais vous en présenter une autre, qui est le chercheur ThinkPHP6.

1. Comprendre la définition du chercheur

Examinons d'abord la description du chercheur dans le manuel.

La fonction du chercheur est d'encapsuler l'expression de la condition de requête du champ (ou l'identifiant de recherche). Un chercheur correspond à une méthode particulière (la méthode doit être de type public). la convention est la suivante :

search FieldName Attr

FieldName est la conversion en cas de chameau du champ de la table de données, et le chercheur n'est déclenché que lorsque la méthode withSearch est appelée.

2. Établir les conditions de recherche

Comment utiliser le chercheur ? Expliquons avec des exemples.

Utilisation du moteur de recherche ThinkPHP6

Nous avons trois conditions de recherche : goods_cate_id (filtrage par catégorie), Goods_status (filtrage par statut), Goods_name (filtrage par mots clés).

Nous créons d'abord trois méthodes de recherche :

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.'%');
    }

Portez une attention particulière à la dénomination des méthodes de recherche, nous devons suivre strictement les définitions du manuel officiel. Par exemple, si le champ de recherche de notre table de données est Goods_cate_id, alors lors de la définition de la méthode , ce qui suit est faux :

1 public function searchGoodsCateId($query, $value), less. Attr.

2. Fonction publique searchGoodsCateIDAttr($query, $value), le cas chameau est faux.

3. Fonction publique searchGoodsCateAttr($query, $value), l'identifiant est mal écrit en casse chameau.

4. La fonction privée searchGoodsCateIdAttr($query, $value) doit être publique.

3. Déclencher la recherche

Searcher Seul est déclenché lorsque la méthode withSearch est appelée.

$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);

De plus, en plus de la recherche, le chercheur peut également effectuer des fonctions de tri, je ne donnerai donc pas d'exemple ici.

Pendant le débogage, nous pouvons également imprimer l'instruction sql. Si nous ne voulons aucun résultat, nous pouvons analyser directement l'instruction sql.

echo Goods::getLastSql();

Ce qui précède est l'explication sur l'utilisation du moteur de recherche ThinkPHP6. Lorsque vous effectuez une recherche multi-conditions, vous pouvez utiliser celui de votre choix, ou vous pouvez choisir en fonction de votre propre situation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn