[thinkPHP5專案實戰_24]前臺頁面導航欄目呼叫
阿新 • • 發佈:2019-02-17
之前的前臺頁面的導航欄是通過a標籤實現跳轉的,但是在實際專案中欄目的資訊可能是動態變化的,因此展示的導航欄也會根據資料庫儲存的變化而變化;
通過後臺操作對導航欄的管理,實現前臺頁面的展示。
每次開啟前臺頁面都需要優先展示導航欄,需要建立初始化方法在其他頁面的控制器呼叫之前呼叫導航欄頁面
首先,在後臺建立自己想要的導航欄目:
在application/index模組下建立控制器Basic.php,該初始化方法用於從資料表cate中取出導航欄
在前臺的其他控制器中繼承該控制器:<?php namespace app\index\controller; use think\Controller; class Basic extends Controller { //定義控制器初始化方法_initialize,在該控制器的方法呼叫之前首先執行。 public function _initialize() { $this->nav(); } //給導航模板賦值 public function nav() { $navres = \think\Db::name('cate')->order('id asc')->select(); $this->assign('navres',$navres); } }
<?php
namespace app\index\controller;
class Index extends Basic
{
public function index()
{
return $this->fetch();
}
}
修改導航頁面header.html進行模板賦值:
由於留言板所屬的type不同,因此需要對留言板做一個判斷
<div class="blog-masthead"> <div class="container"> <nav class="blog-nav"> {volist name="navres" id="vo"} <a class="blog-nav-item" href=" {if condition="$vo['type'] eq 0"} {:url('lists/index',array('cateid'=>$vo['ID']))} {else /} {:url('guest/index',array('cateid'=>$vo['ID']))} {/if} ">{$vo.catename}</a> {/volist} </nav> </div> </div>