威尼斯wns.9778官网 > 计算机教程 > laravel 5 威尼斯wns.9778官网:实现模板主题功能(

原标题:laravel 5 威尼斯wns.9778官网:实现模板主题功能(

浏览次数:123 时间:2019-08-09

您可能感兴趣的文章:

复制代码 代码如下:

使用:

//我们可以把这个写在 __construct 里面
View::setDefaultNamespace('blue',app_path().'/views/blue');

自定义主题 custom :

聪明的朋友可能已经感觉到了,这个功能可以助我们实现模板主题化,比如:

复制代码 代码如下:

复制代码 代码如下:

今天的教程就先到这里吧,后续我们再来深入分析一下,希望大家能够喜欢。

您可能感兴趣的文章:

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

laravel渲染视图有一种写法:

需要注意的是传入模板的变量得通过Response::render的第二个参数。

复制代码 代码如下:

复制代码 代码如下:

但是很遗憾,View并没有setDefaultNamespace方法,所以我决定创建一个项目,专门针对laravel进行核心类库扩展,这个功能已经实现,可以查看我的项目:项目地址 ,在src/Keepeye/Laravel/View/查看使用方法吧。

既然这样,我们就可以自己实现模板主题功能,我们只需要将模板文件放到一个主题名称对应的目录里就行,比如默认主题为 default 的话,我们就这样写:

复制代码 代码如下:

复制代码 代码如下:

如何定义namespace呢,就是通过这个方法啦:

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

然而我们需要事先通过View::addNamespace方法先注册这几个主题的路径映射,并且在渲染的时候需要显式指定namespace.

这样基本就实现模板主题化的功能了,但还存在一个问题,那就是custom主题必须实现所有default主题的所有模板,否则会导致某些页面模板文件不存在报错,那么进一步优化:

这样就实现了后台切换主题了。

复制代码 代码如下:

//实际上相当于 View::make('blue::index.index');
View::make('index.index');

从配置文件中读取主题名:

更进一步,我们可以通过后台设置主题,把主题名写进数据库,前台读取并设置主题:

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

复制代码 代码如下:

本文由威尼斯wns.9778官网发布于计算机教程,转载请注明出处:laravel 5 威尼斯wns.9778官网:实现模板主题功能(

关键词:

上一篇:MySQL异常恢复之无主键情况下innodb数据恢复的方法

下一篇:没有了