ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 でナビゲーション メニューを使用する方法

ThinkPHP6 でナビゲーション メニューを使用する方法

WBOY
WBOYオリジナル
2023-06-21 08:03:121715ブラウズ

インターネットの発展に伴い、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. データのインポート

ナビゲーション メニュー データ テーブルを作成した後、ナビゲーション メニュー データをデータベースにインポートする必要があります。一般に、次の方法でデータをインポートできます。

  • データを手動でデータベースに直接追加する
  • コマンド ライン ツールを使用してデータをインポートする
  • スクリプトを作成する バッチ インポートdata

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

コントローラーでは、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 thinkacadeRoute;

Route::get('menu/index', 'MenuController@index');

ルートが定義されたら、http://localhost/menu/index を通じてメニュー ページにアクセスできます。

概要

上記は、ナビゲーション メニュー データ テーブルの作成、データのインポート、メニュー モデルの作成、メニュー コントローラーの作成、メニュー ビューの作成、ルーティングの作成を含む、ThinkPHP6 でナビゲーション メニューを使用する完全なプロセスです。 。この例を通じて、誰もが ThinkPHP6 のナビゲーション メニューの使い方を習得し、すぐにプロジェクトに適用できるようになったと思います。

以上がThinkPHP6 でナビゲーション メニューを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。