【问题标题】:Kohana - passing variables to a viewKohana - 将变量传递给视图
【发布时间】:2012-04-25 11:18:54
【问题描述】:

我无法将简单的变量传递给视图,谁能告诉我我做错了什么?

我有一个控制器用户:

class Controller_User extends Controller_Template_Login {  

     public function action_index()
    {
        $this->template = 'user/info';
        parent::before(); 
        $user = Auth::instance()->get_user();         
        $this->template->content = View::factory('user/info')
            ->bind('user', $user)
            ->bind('message', $message)
            ->bind('errors', $errors);        

        // if a user is not logged in, redirect to login page
        if (!$user)
        {
            Request::current()->redirect('user/login');
        }
    }

}

在我的视图(用户/信息)中,我得到该用户未定义。

我错过了什么?

编辑:请注意,这可以通过添加:

$user = Auth::instance()->get_user(); 

到 Controller_Template_Login

        $user = Auth::instance()->get_user();
        $this->template->user = $user;

我想知道为什么这不起作用:

    $user = Auth::instance()->get_user();         

    $this->template->content = View::factory('user/info')
    ->bind('user', $user)
    ->bind('message', $message)
    ->bind('errors', $errors); 

【问题讨论】:

    标签: kohana kohana-3.2


    【解决方案1】:

    因为在第一种情况下

    $this->template->user = $user;
    

    您将$user 变量分配给$this->templateuser 属性。

    在第二种情况下:

    $this->template->content = View::factory('user/info')
        ->bind('user', $user)
        ->bind('message', $message)
        ->bind('errors', $errors); 
    

    您将$user 变量绑定到$this->template->contentuser 属性。

    【讨论】:

    • 所以下面的代码什么都不做: $this->template->content = View::factory('user/info') ,它只是将视图的内容分配给 template->content 但是没用对吗?
    • @Tarek:此代码将视图对象分配给content 属性。如果您在模板中使用 $content 变量 - 它将被渲染。如果没有 - 它不会做任何有用的事情
    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多