亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ThinkPHP實(shí)現(xiàn)動(dòng)態(tài)包含文件的方法

 更新時(shí)間:2014年11月29日 15:19:02   投稿:shichen2014  
這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)動(dòng)態(tài)包含文件的方法,是進(jìn)行ThinkPHP項(xiàng)目開發(fā)中非常實(shí)用的技巧,需要的朋友可以參考下

本文實(shí)例講述了ThinkPHP實(shí)現(xiàn)動(dòng)態(tài)包含文件的方法。分享給大家供大家參考。具體分析如下:

問題描述:在做項(xiàng)目的時(shí)候遇到問題,也是很常見的問題,一般主頁包含頭部和腳步,為了方便管理,這些都需要使用包含文件來實(shí)現(xiàn),ThinkPHP提供了包含文件的方法,以上是最簡(jiǎn)單的包含的操作的方式,但是在運(yùn)行的過程中我發(fā)現(xiàn),在請(qǐng)求的時(shí)候只是請(qǐng)求的是模板文件,也就是所謂的靜態(tài)包含,但是如果遇到菜單是動(dòng)態(tài)生成的就很難辦了.

在網(wǎng)上找到一個(gè)解決辦法:使用Widget

1、我們?cè)陧撁嬷袑?shí)現(xiàn)一個(gè)分類顯示的Widget,首先我們要實(shí)現(xiàn)我們首先定義一個(gè)Widget控制器層 CateWidget,如下:

復(fù)制代碼 代碼如下:
class CateWidget extends Action { 
    public function menu(){ 
        return 'menuWidget'; 
    } 
}

注意是在Widget包中定義,和一般的Action還是有區(qū)別的

2、然后,我們?cè)谀0嬷型ㄟ^R方法調(diào)用這個(gè)Widget(擴(kuò)展Widget方式在模版中使用的是W方法),如果對(duì)R函數(shù)不了解的參考這里.(http://www.thinkphp.cn/info/134.html)

{:R('Cate/Menu','','Widget')}

執(zhí)行后的輸出結(jié)果是:menuWidget

3、如果,CateWidget類的menu方法改成:

復(fù)制代碼 代碼如下:
class CateWidget extends Action { 
    public function menu(){ 
        echo 'menuWidget'; 
    } 
}

4、模版中的用法則需要改成:
復(fù)制代碼 代碼如下:
{~R('Cate/Menu','','Widget')}

5、如果需要在調(diào)用Widget的時(shí)候 使用參數(shù),可以這樣定義:

復(fù)制代碼 代碼如下:
class CateWidget extends Action { 
    public function menu($id,$name){ 
        echo $id.':'.$name; 
    } 
}

6、模版中的參數(shù)調(diào)用,使用:
復(fù)制代碼 代碼如下:
{:R('Cate/Menu',array(5,'thinkphp'),'Widget')}

則會(huì)輸出 5:thinkphp

7、來一個(gè)復(fù)雜一點(diǎn)的例子:

復(fù)制代碼 代碼如下:
class CateWidget extends Action { 
    public function menu(){ 
        $menu = M('Cate')->getField('id,title'); 
        $this->assign('menu',$menu); 
        $this->display('Cate:menu'); 
    } 
}

8、CateWiget類渲染了一個(gè)模版文件Tpl/Cate/menu.html,調(diào)用模版的靈活也是使用這種方式實(shí)現(xiàn)Widget的區(qū)別(Widget擴(kuò)展方式中需要調(diào)用renderFile方法渲染模版)。

在menu.html模版文件中的用法:{$key}:{$title}

希望本文所述對(duì)大家的ThinkPHP框架程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論