最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

laravel 5 實(shí)現(xiàn)模板主題功能

 更新時(shí)間:2015年03月02日 14:29:16   投稿:hebedich  
很多cms里都有模板主題功能,我們可以通過(guò)一個(gè)配置切換主題,這個(gè)功能在laravel下如何實(shí)現(xiàn)呢?今天我們就來(lái)探討下這個(gè)問(wèn)題。

眾所周知,laravel渲染模板是通過(guò)View::make()實(shí)現(xiàn)的,需要顯式指定模板文件路徑:

復(fù)制代碼 代碼如下:

function index()
{
    return View::make('index.index');
}

既然這樣,我們就可以自己實(shí)現(xiàn)模板主題功能,我們只需要將模板文件放到一個(gè)主題名稱對(duì)應(yīng)的目錄里就行,比如默認(rèn)主題為 default 的話,我們就這樣寫(xiě):

復(fù)制代碼 代碼如下:

function index()
{
    return View::make('default.index.index');
}

自定義主題 custom :

復(fù)制代碼 代碼如下:

function index()
{
    return View::make('custom.index.index');
}

從配置文件中讀取主題名:

復(fù)制代碼 代碼如下:

function index()
{
    return View::make(Config::get('app.theme','default').'.index.index');
}

這樣基本就實(shí)現(xiàn)模板主題化的功能了,但還存在一個(gè)問(wèn)題,那就是custom主題必須實(shí)現(xiàn)所有default主題的所有模板,否則會(huì)導(dǎo)致某些頁(yè)面模板文件不存在報(bào)錯(cuò),那么進(jìn)一步優(yōu)化:

復(fù)制代碼 代碼如下:

function index()
{
    $theme = Config::get('app.theme','default');
    $tpl = $theme.'.index.index';
    if (!View::exists($tpl)) {
        $tpl = 'default.index.index';
    }
    return View::make($tpl);
}

就是在渲染模板之前,先檢測(cè)模板文件是否存在,不存在的話則使用default主題中對(duì)應(yīng)的模板。

這么多行代碼,我們可以繼續(xù)封裝一下,這時(shí)候要用到Response對(duì)象了,我們知道 Response::view() 等同于 View::make(),而Response還有一個(gè)方法Response::macro()方法可以用來(lái)定義一個(gè)宏,我們可以把邏輯封裝到宏里面:

復(fù)制代碼 代碼如下:

Response::macro('render',function($path,$data=array()){
    $theme = Config::get('app.theme','default');
    $tpl = $theme.'.'.$path;
    if (!View::exists($tpl)) {
        $tpl = 'default.' . $path;
    }
    return Response::view($tpl,$data);
});

使用:

復(fù)制代碼 代碼如下:

function index()
{
    $bindings = array(
        'title' => '首頁(yè)'
    );
    return Response::render('index.index',$bindings);
}

需要注意的是傳入模板的變量得通過(guò)Response::render的第二個(gè)參數(shù)。

今天的教程就先到這里吧,后續(xù)我們?cè)賮?lái)深入分析一下,希望大家能夠喜歡。

相關(guān)文章

  • ThinkPHP表單自動(dòng)驗(yàn)證實(shí)例

    ThinkPHP表單自動(dòng)驗(yàn)證實(shí)例

    這篇文章主要介紹了ThinkPHP表單自動(dòng)驗(yàn)證實(shí)例,是ThinkPHP三大自動(dòng)中非常常用的一個(gè)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • php unlink()函數(shù)使用教程

    php unlink()函數(shù)使用教程

    最近在寫(xiě)個(gè)網(wǎng)站,需要上傳圖片,如果修改圖片,就圖片就沒(méi)有用了,會(huì)占用服務(wù)器的硬盤(pán)資源,所以想到用unlink函數(shù)刪除舊照片.下面腳本之家小編給大家?guī)?lái)了php unlink()函數(shù)使用教程,感興趣的朋友一起看看吧
    2018-07-07
  • 解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁(yè)的問(wèn)題

    解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁(yè)的問(wèn)題

    當(dāng)我們?cè)谑褂胿alidate等方法進(jìn)行驗(yàn)證時(shí),如果是錯(cuò)誤,則會(huì)返回首頁(yè),那么這個(gè)跳轉(zhuǎn)到首頁(yè)如何實(shí)現(xiàn)的呢?今天小編給大家分享一篇教程關(guān)于Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁(yè)的解決辦法,一起看看吧
    2021-10-10
  • Yii框架實(shí)現(xiàn)郵箱激活的方法【數(shù)字簽名】

    Yii框架實(shí)現(xiàn)郵箱激活的方法【數(shù)字簽名】

    這篇文章主要介紹了Yii框架實(shí)現(xiàn)郵箱激活的方法,基于郵箱發(fā)送郵件實(shí)現(xiàn)數(shù)字簽名的激活功能,需要的朋友可以參考下
    2016-10-10
  • CodeIgniter CLI模式簡(jiǎn)介

    CodeIgniter CLI模式簡(jiǎn)介

    這篇文章主要介紹了CodeIgniter CLI模式,需要的朋友可以參考下
    2014-06-06
  • 解讀PHP中上傳文件的處理問(wèn)題

    解讀PHP中上傳文件的處理問(wèn)題

    這篇文章主要介紹了解讀PHP中上傳文件的處理問(wèn)題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-05-05
  • 詳解PHP實(shí)現(xiàn)支付寶小程序用戶授權(quán)的工具類

    詳解PHP實(shí)現(xiàn)支付寶小程序用戶授權(quán)的工具類

    這篇文章主要介紹了詳解PHP實(shí)現(xiàn)支付寶小程序用戶授權(quán)的工具類,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • PHP讀書(shū)筆記_運(yùn)算符詳解

    PHP讀書(shū)筆記_運(yùn)算符詳解

    下面小編就為大家?guī)?lái)一篇PHP讀書(shū)筆記_運(yùn)算符詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • Yii2實(shí)現(xiàn)中國(guó)省市區(qū)三級(jí)聯(lián)動(dòng)實(shí)例

    Yii2實(shí)現(xiàn)中國(guó)省市區(qū)三級(jí)聯(lián)動(dòng)實(shí)例

    本篇文章主要介紹了Yii2實(shí)現(xiàn)中國(guó)省市區(qū)三級(jí)聯(lián)動(dòng)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Laravel中獲取路由參數(shù)Route Parameters的五種方法示例

    Laravel中獲取路由參數(shù)Route Parameters的五種方法示例

    這篇文章主要給大家介紹了關(guān)于Laravel中獲取路由參數(shù)Route Parameters的五種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-09-09

最新評(píng)論

扶风县| 汾阳市| 社旗县| 张家界市| 德钦县| 武平县| 雅江县| 新巴尔虎右旗| 克东县| 睢宁县| 宜昌市| 汉川市| 兴仁县| 广河县| 富川| 南京市| 扬州市| 佳木斯市| 都昌县| 井冈山市| 三台县| 开封县| 阳朔县| 清新县| 阳山县| 扎兰屯市| 托克逊县| 格尔木市| 沙雅县| 武邑县| 康定县| 凤台县| 和硕县| 西昌市| 浦县| 大安市| 黔东| 雷山县| 祁东县| 沙田区| 夏津县|