인터넷의 발달과 함께 웹사이트는 점점 더 복잡해지고, 그 기능은 점점 더 풍부해지고, 사용자의 요구는 점점 더 다양해지고 있습니다. 사용자가 필요한 기능을 빠르게 찾을 수 있도록 탐색 기능은 더욱 다양해지고 있습니다. 메뉴는 이제 없어서는 안 될 요소가 되었습니다. 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 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
方法来获取一级菜单,然后将菜单数据和当前选中的菜单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
rrreee
Menu
의 where
메서드를 사용합니다. > 모델을 사용하여 첫 번째 수준 메뉴를 가져온 다음 메뉴 데이터와 현재 선택된 메뉴 ID를 뷰에 할당하고 마지막으로 뷰를 렌더링합니다. 5. 메뉴 보기 만들기 메뉴 보기는 탐색 메뉴를 표시하는 데 사용됩니다. 페이지 상단이나 왼쪽에 실제 필요에 따라 특정 위치를 결정할 수 있습니다. 뷰에서 foreach
루프를 사용하여 메뉴 데이터를 순회한 다음 해당 HTML 코드를 출력할 수 있습니다. 🎜rrreee🎜6. 경로 만들기🎜🎜ThinkPHP6에서는 메뉴 컨트롤러의 index
메서드에 액세스하기 위한 경로를 만들어야 합니다. 🎜rrreee🎜다음 경로는 다음과 같습니다. 정의되면 http://localhost/menu/index
를 전달하여 메뉴 페이지에 액세스할 수 있습니다. 🎜🎜요약🎜🎜위는 내비게이션 메뉴 데이터 테이블 생성, 데이터 가져오기, 메뉴 모델 생성, 메뉴 컨트롤러 생성, 메뉴 뷰 생성, 경로 생성 등 ThinkPHP6에서 내비게이션 메뉴를 사용하는 전체 과정입니다. 이 예제를 통해 누구나 ThinkPHP6의 내비게이션 메뉴 사용법을 익혔고, 프로젝트에 빠르게 적용할 수 있을 것이라 믿습니다. 🎜위 내용은 ThinkPHP6에서 탐색 메뉴를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!