[thinkPHP5项目实战_24]前台页面导航栏目调用

来源:互联网 发布:2016淘宝女装排名店铺 编辑:程序博客网 时间:2024/04/30 16:39

之前的前台页面的导航栏是通过a标签实现跳转的,但是在实际项目中栏目的信息可能是动态变化的,因此展示的导航栏也会根据数据库存储的变化而变化;

通过后台操作对导航栏的管理,实现前台页面的展示。

每次打开前台页面都需要优先展示导航栏,需要创建初始化方法在其他页面的控制器调用之前调用导航栏页面

首先,在后台创建自己想要的导航栏目:


在application/index模块下创建控制器Basic.php,该初始化方法用于从数据表cate中取出导航栏

<?phpnamespace 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);        }}
在前台的其他控制器中继承该控制器:

<?phpnamespace 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>