Maison > cadre php > PensezPHP > Comment utiliser le menu de navigation dans ThinkPHP6

Comment utiliser le menu de navigation dans ThinkPHP6

WBOY
Libérer: 2023-06-21 08:03:12
original
1824 Les gens l'ont consulté

Avec le développement d'Internet, les sites Web deviennent de plus en plus complexes, leurs fonctions de plus en plus abondantes et les besoins des utilisateurs de plus en plus diversifiés Afin de faciliter aux utilisateurs la localisation rapide des fonctions requises, de la navigation. le menu est devenu un élément indispensable. Comment utiliser le menu de navigation dans ThinkPHP6 ? Cet article vous présentera étape par étape.

1. Créer une table de données de menu de navigation

Dans ThinkPHP6, nous pouvons utiliser une base de données pour stocker les informations du menu de navigation. La structure spécifique du tableau est la suivante :

CREATE TABLE `menu` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL COMMENT '菜单名称',
  `url` varchar(255) NOT NULL DEFAULT '' COMMENT '菜单链接地址',
  `parent_id` bigint(20) UNSIGNED NOT NULL COMMENT '父级菜单ID',
  `order` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='导航菜单表';
Copier après la connexion

2. Importer des données

Après avoir créé le tableau de données du menu de navigation, nous devons importer les données du menu de navigation dans la base de données. En général, nous pouvons importer des données des manières suivantes :

  • Ajouter manuellement des données directement à la base de données
  • Utiliser des outils de ligne de commande pour importer des données
  • Écrire des scripts pour importer des données par lots

3. Créer un modèle de menu

Dans ThinkPHP6, nous pouvons utiliser des modèles pour nous connecter à la base de données et obtenir des données dans la base de données. Par conséquent, nous devons créer un modèle de menu et définir le nom de la table, la clé primaire, l'horodatage automatique et d'autres attributs dans le modèle. Le code spécifique est le suivant :

<?php
namespace appmodel;

use thinkModel;

class Menu extends Model
{
    protected $table = 'menu';
    protected $pk = 'id';

    protected $autoWriteTimestamp = true;
}
Copier après la connexion

4. Créer un contrôleur de menu

Le contrôleur de menu est responsable. pour traiter toute la logique liée aux menus, y compris comment obtenir les données de menu, comment restituer les vues de menu, etc. Dans ThinkPHP6, nous pouvons utiliser des outils de ligne de commande pour générer rapidement des contrôleurs. La commande spécifique est la suivante :

php think make:controller Menu
Copier après la connexion

Une fois la commande exécutée, nous pouvons trouver le fichier Menu.php généré dans le répertoire appcontroller. Ensuite on peut définir une méthode dans le contrôleur pour obtenir le menu de navigation. Le code spécifique est le suivant : appcontroller目录下找到生成的Menu.php文件。然后我们可以在控制器中定义一个获取导航菜单的方法,具体代码如下:

<?php
namespace appcontroller;

use appmodelMenu;
use thinkacadeView;

class MenuController
{
    public function index()
    {
        // 获取一级菜单
        $menus = Menu::where('parent_id', 0)->order('order')->select();

        // 获取当前选中的菜单ID
        $selectedId = input('get.id', '');

        View::assign([
            'menus' => $menus,
            'selectedId' => $selectedId,
        ]);

        return View::fetch('index');
    }
}
Copier après la connexion

在控制器中,我们使用Menu模型的where方法来获取一级菜单,然后将菜单数据和当前选中的菜单ID分配给视图,最后渲染视图。

5.创建菜单视图

菜单视图用于展示导航菜单,我们可以将导航菜单展示在页面的头部或者左侧,具体位置可以根据实际需求来确定。在视图中,我们可以使用foreach循环来遍历菜单数据,然后输出对应的HTML代码。

<nav>
    <ul>
        <?php foreach ($menus as $menu): ?>
            <li class="<?php if ($selectedId == $menu['id']) echo 'active' ?>">
                <a href="<?php echo $menu['url'] ?>"><?php echo $menu['title'] ?></a>
            </li>
        <?php endforeach; ?>
    </ul>
</nav>
Copier après la connexion

6.创建路由

在ThinkPHP6中,我们需要创建一个路由来访问菜单控制器的index方法,具体代码如下:

use thinkacadeRoute;

Route::get('menu/index', 'MenuController@index');
Copier après la connexion

路由定义好之后,我们就可以通过http://localhost/menu/indexrrreee

Dans le contrôleur, on utilise la méthode where du Menu modèle pour l'obtenir Menu de premier niveau, puis attribuez les données du menu et l'ID de menu actuellement sélectionné à la vue, et enfin restituez la vue. <p></p>5. Créer une vue de menu<p></p>La vue de menu est utilisée pour afficher le menu de navigation. Nous pouvons afficher le menu de navigation en tête ou sur le côté gauche de la page. L'emplacement spécifique peut être déterminé en fonction des besoins réels. Dans la vue, nous pouvons utiliser la boucle <code>foreach pour parcourir les données du menu, puis générer le code HTML correspondant. 🎜rrreee🎜6. Créer une route🎜🎜Dans ThinkPHP6, nous devons créer une route pour accéder à la méthode index du contrôleur de menu. Le code spécifique est le suivant : 🎜rrreee🎜Après la route. défini, on peut passer http://localhost/menu/index pour accéder à la page de menu. 🎜🎜Résumé🎜🎜Ce qui précède est le processus complet d'utilisation du menu de navigation dans ThinkPHP6, y compris la création d'un tableau de données du menu de navigation, l'importation de données, la création d'un modèle de menu, la création d'un contrôleur de menu, la création d'une vue de menu et la création d'un itinéraire. Grâce à cet exemple, je pense que tout le monde maîtrise les compétences nécessaires pour utiliser le menu de navigation dans ThinkPHP6 et peut rapidement l'appliquer dans le projet. 🎜

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