我无法将简单的变量传递给 View ,有人可以告诉我我做错了什么吗?
我有一个 Controller 用户:
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');
}
}
}
在我的 View (用户/信息)中,我发现用户未定义。
我缺少什么?
编辑:请注意,可以通过添加:
来解决此问题$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);
最佳答案
因为第一种情况
$this->template->user = $user;
将 $user
变量分配给 $this->template
的 user
属性。
在第二种情况下:
$this->template->content = View::factory('user/info')
->bind('user', $user)
->bind('message', $message)
->bind('errors', $errors);
将 $user
变量绑定(bind)到 $this->template->content
的 user
属性。
关于Kohana - 将变量传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134966/