我无法将简单变量传递给视图,有人能告诉我我做错了什么吗?
我有一个控制器用户:
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);
答案 0 :(得分:5)
因为在第一种情况下
$this->template->user = $user;
您将$user
变量分配给user
的{{1}}属性。
在第二种情况下:
$this->template
您将$this->template->content = View::factory('user/info')
->bind('user', $user)
->bind('message', $message)
->bind('errors', $errors);
变量绑定到$user
的{{1}}属性。