1. 程式人生 > >[thinkPHP5專案實戰_24]前臺頁面導航欄目呼叫

[thinkPHP5專案實戰_24]前臺頁面導航欄目呼叫

之前的前臺頁面的導航欄是通過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>