2

具有以下由其他控制器扩展的类

class Admin_Controller extends Base_Controller 
{
    static $admin_layout = 'admin.layouts.default';

    public function __construct()
    {
        parent::__construct();

        $role_object = User::find(Auth::user()->id)->roles()->get();
        $role = $role_object[0]->attributes['name'];

如:

class Admin_Draws_Controller extends Admin_Controller
{
    public $restful = true;

    public function __construct()
    {
                $this->layout = parent::$admin_layout;
        parent::__construct();
    }

    public function get_index()
    {
        $view = View::make('admin.templates.draws');
        $this->layout->content = $view;
    }
}

如何将$role变量发送到,admin.layouts.default以便在加载视图时可以使用它?

“全局”$role变量的重点是避免必须View::make()像以下那样在我的所有内容中调用它:

$view = View::make('admin.templates.articles',
    array(
        'fields' => $fields,
        'data' => $results,
        'links' => $links,
                    'role' => 'role here'. // I don't want to add this where ever I call the View::make
    )
);
$this->layout->content = $view;

点个echo $role赞,在我的header.blade.php

4

1 回答 1

1

我最终做了以下工作。

控制器

// Example of variable to set
$this->layout->body_class = 'user-register';

$view = View::make('modules.user.register', array(
    'success' => true,
));

$this->layout->content = $view;

我的default.layout.php看法

<body class="<?php echo isset($body_class) ? $body_class : '' ;?>">

    @include('partials.header')

    {{ $content }}

    @include('partials.footer')

该变量可以很容易地在视图中的任何其他上下文中使用。

于 2013-06-12T05:20:17.987 回答