>  기사  >  PHP 프레임워크  >  ThinkPHP6에서 탐색 메뉴를 사용하는 방법

ThinkPHP6에서 탐색 메뉴를 사용하는 방법

WBOY
WBOY원래의
2023-06-21 08:03:121785검색

인터넷의 발달과 함께 웹사이트는 점점 더 복잡해지고, 그 기능은 점점 더 풍부해지고, 사용자의 요구는 점점 더 다양해지고 있습니다. 사용자가 필요한 기능을 빠르게 찾을 수 있도록 탐색 기능은 더욱 다양해지고 있습니다. 메뉴는 이제 없어서는 안 될 요소가 되었습니다. 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 파일을 찾을 수 있습니다. 그런 다음 컨트롤러에서 탐색 메뉴를 가져오는 메서드를 정의할 수 있습니다. 구체적인 코드는 다음과 같습니다. 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/indexrrreee

컨트롤러에서는 Menuwhere 메서드를 사용합니다. > 모델을 사용하여 첫 번째 수준 메뉴를 가져온 다음 메뉴 데이터와 현재 선택된 메뉴 ID를 뷰에 할당하고 마지막으로 뷰를 렌더링합니다.

5. 메뉴 보기 만들기

메뉴 보기는 탐색 메뉴를 표시하는 데 사용됩니다. 페이지 상단이나 왼쪽에 실제 필요에 따라 특정 위치를 결정할 수 있습니다. 뷰에서 foreach 루프를 사용하여 메뉴 데이터를 순회한 다음 해당 HTML 코드를 출력할 수 있습니다. 🎜rrreee🎜6. 경로 만들기🎜🎜ThinkPHP6에서는 메뉴 컨트롤러의 index 메서드에 액세스하기 위한 경로를 만들어야 합니다. 🎜rrreee🎜다음 경로는 다음과 같습니다. 정의되면 http://localhost/menu/index를 전달하여 메뉴 페이지에 액세스할 수 있습니다. 🎜🎜요약🎜🎜위는 내비게이션 메뉴 데이터 테이블 생성, 데이터 가져오기, 메뉴 모델 생성, 메뉴 컨트롤러 생성, 메뉴 뷰 생성, 경로 생성 등 ThinkPHP6에서 내비게이션 메뉴를 사용하는 전체 과정입니다. 이 예제를 통해 누구나 ThinkPHP6의 내비게이션 메뉴 사용법을 익혔고, 프로젝트에 빠르게 적용할 수 있을 것이라 믿습니다. 🎜

위 내용은 ThinkPHP6에서 탐색 메뉴를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.