Maison > cadre php > PensezPHP > le corps du texte

Solution de pagination ThinkPHP6 avec conditions de recherche

王雪芹
Libérer: 2020-05-04 09:43:08
original
2686 Les gens l'ont consulté

Dans ThinkPHP6, il n'est pas difficile d'implémenter la pagination, et il n'est pas difficile d'implémenter la recherche, mais la recherche avec des conditions de recherche déconcerte beaucoup de gens. Dans la même situation, nous avons déplacé le code tp5 et constaté qu'il ne fonctionnait pas. Alors, comment résoudre la pagination avec les conditions de recherche dans ThinkPHP6 ?

Regardons le scénario spécifique. J'ai recherché un mot-clé et sélectionné une catégorie pour rechercher et filtrer les articles.

1. Trouvez le problème

Tout d'abord, jetons un coup d'œil à la première page avec les conditions de recherche :

Solution de pagination ThinkPHP6 avec conditions de recherche

Ensuite, regardons la deuxième page :

Solution de pagination ThinkPHP6 avec conditions de recherche

Les amis attentifs constateront qu'il n'y a pas d'URL dans les deuxième et troisième pages avec des critères de recherche. .

2. Comment le résoudre :

La clé du problème a été trouvée, alors comment le résoudre ? Allons d'abord au manuel du site officiel et recherchons-le :

Solution de pagination ThinkPHP6 avec conditions de recherche

Dans le manuel, il y a un élément de requête qui est responsable de la transmission de paramètres supplémentaires dans l'URL, donc il sera facile à gérer.

Regardez directement le code :

$where=[];//筛选条件数组
     if(input('cate_id')){
        $where[] = [
                     ['a.cate_id', '=', $cate_id],
                 ];
     }

     if(input('searchkey')){
        $where[] = [
                     ['title', 'like', '%'.$searchkey.'%'],
                 ];
     }
     $archivesData=Db::name('archives')->alias('a')->
            field('a.id,a.title,a.listorder,b.cate_name,a.time')->
            join('category b','a.cate_id=b.id')->
            where($where)->
            order('a.listorder asc')->//小到大
            order('a.id DESC')->//大-》小
            paginate([
              'list_rows'=> 3,//每页数量
              'query' => request()->param(),
              ]);
Copier après la connexion

De cette façon, nous avons parfaitement résolu le problème de la "pagination ThinkPHP6 avec conditions de recherche". . Examinons d'abord le manuel de plus près. Peut-être que cela peut résoudre les problèmes que nous rencontrons.

[Recommandations associées]

1. [Informations sèches] ThinkPHP6 connecté à WeChat scanne le code QR pour se connecter

2. Utilisation du mode usine pour implémenter l'accès Thinkphp6.0 à Alibaba Cloud SMS

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal