根据布局调用视图

时间:2014-10-09 07:01:56

标签: laravel laravel-4

我正忙着创建一个cms,在后端我有一个部分,你可以选择一个页面的布局。目前布局的名称已保存到数据库中,我希望能够做到这样的事情: 如果contact与layouts.contact相同,则显示contact.blade.php。 "接触"是从后端保存在数据库中的布局名称,如果" home"然后选择home.blade.php进行选择。

我尝试创建一个帮助器,但它没有显示任何内容

function getTypeLayout($type = '')
{

$layout = Page::where('type', '=', $type)->get();

switch($layout){
    case "home":
        echo "home layout";
        break;
    case "inside":   
        echo "inside layout"; 
}

return $type;
}

和我的home.blade.php

{{ getTypeLayout() }}

1 个答案:

答案 0 :(得分:2)

您可以创建主模板。在此母版页中,您可以插入内容

<html>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show

        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

此内容页面如

@extends('layouts.master')

@section('sidebar')


    <p>This is appended to the master sidebar.</p>
@stop

@section('content')
    <p>This is my body content.</p>
@stop

在您的控制器中,您可以根据数据库值确定要使用的内容

protected $layout = 'layouts.master';

public function showLayout()
{
    $this->layout->content = View::make('<DBvalue>.layout');
}