首頁  >  文章  >  php框架  >  如何在ThinkPHP6中使用導航選單

如何在ThinkPHP6中使用導航選單

WBOY
WBOY原創
2023-06-21 08:03:121786瀏覽

隨著網路的發展,網站越來越複雜,功能越來越豐富,使用者的需求也越來越多元化,為了方便使用者快速定位所需的功能,導航選單成為了必不可少的一個元素。在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

指令執行完成之後,我們可以在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');
    }
}

在控制器中,我們使用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>

6.建立路由

在ThinkPHP6中,我們需要建立一個路由來存取選單控制器的index方法,具體程式碼如下:

use thinkacadeRoute;

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

路由定義好之後,我們就可以透過http://localhost/menu/index來存取選單頁面了。

總結

以上就是在ThinkPHP6中使用導航選單的完整流程,包括建立導航選單的資料表、匯入資料、建立選單模型、建立選單控制器、建立選單檢視和創建路由。透過這個例子,相信大家已經掌握瞭如何在ThinkPHP6中使用導航選單的技巧,可以在專案中快速應用。

以上是如何在ThinkPHP6中使用導航選單的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn