インターネットの発展に伴い、Webサイトの複雑化、機能の豊富化、ユーザーニーズの多様化が進む中、ユーザーが必要な機能を素早く見つけ出すために、ナビゲーションメニューは欠かせない要素となっています。 ThinkPHP6 でナビゲーション メニューを使用するにはどうすればよいですか?この記事では、ステップごとに紹介します。
1. ナビゲーション メニュー データ テーブルを作成する
ThinkPHP6 では、データベースを使用してナビゲーション メニュー情報を保存できます。まず、ナビゲーション メニュー データ テーブルを作成する必要があります。具体的なテーブル構造は次のとおりです:
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='导航菜单表';
2. データのインポート
ナビゲーション メニュー データ テーブルを作成した後、ナビゲーション メニュー データをデータベースにインポートする必要があります。一般に、次の方法でデータをインポートできます。
3. メニュー モデルの作成
ThinkPHP6 では、モデルを使用してデータベースに接続し、データベース内のデータを取得できます。したがって、メニュー モデルを作成し、テーブル名、主キー、自動タイムスタンプ、およびその他の属性をモデルに定義する必要があります。具体的なコードは次のとおりです:
<?php namespace appmodel; use thinkModel; class Menu extends Model { protected $table = 'menu'; protected $pk = 'id'; protected $autoWriteTimestamp = true; }
4. メニュー コントローラーを作成します
メニュー コントロール プロセッサは、メニュー データの取得方法、メニュー ビューのレンダリング方法など、メニューに関連するすべてのロジックの処理を担当します。 ThinkPHP6 では、コマンド ライン ツールを使用してコントローラーを迅速に生成できます。具体的なコマンドは次のとおりです。
php think make:controller Menu
コマンドの実行が完了すると、生成された Menu.php
ファイルが appcontroller
ディレクトリに見つかります。次に、コントローラーでナビゲーション メニューを取得するメソッドを定義できます。具体的なコードは次のとおりです:
<?php namespace appcontroller; use appmodelMenu; use thinkacadeView; 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'); } }
コントローラーでは、Menu の
where メソッドを使用します。
モデル 第 1 レベルのメニューを取得するには、メニュー データと現在選択されているメニュー 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>
6. ルートの作成
ThinkPHP6 では、メニュー コントローラーの index
メソッドにアクセスするためのルートを作成する必要があります。具体的なコードは次のとおりです。
use thinkacadeRoute; Route::get('menu/index', 'MenuController@index');
ルートが定義されたら、http://localhost/menu/index
を通じてメニュー ページにアクセスできます。
概要
上記は、ナビゲーション メニュー データ テーブルの作成、データのインポート、メニュー モデルの作成、メニュー コントローラーの作成、メニュー ビューの作成、ルーティングの作成を含む、ThinkPHP6 でナビゲーション メニューを使用する完全なプロセスです。 。この例を通じて、誰もが ThinkPHP6 のナビゲーション メニューの使い方を習得し、すぐにプロジェクトに適用できるようになったと思います。
以上がThinkPHP6 でナビゲーション メニューを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。