我对kohana框架有一个神秘的问题。
我在控制器功能中创建会话变量:
public function action_authorise()
{
session_start();
$_SESSION["user"] = "superAdmin";
}
后来在同一个控制器的另一个功能中,我尝试访问本赛季:
public function action_getSession()
{
$this->template->test = $_SESSION["user"];
$this->template->content = View::factory('admin/main');
}
问题在于,当我在admin / main视图中调用$ test变量时,它返回空字符串,但如果我在admin / main视图中隐式调用$ _SESSION [“user”],它将返回“superAdmin”。
在控制器中调用会话变量时,有人能看到错误吗?感谢
答案 0 :(得分:0)
这里的问题是您将变量测试传递给视图template
,并且需要将其传递给视图admin/main
。你可以通过几种方式做到这一点,选择你最喜欢的方式:
// Create the view object
$partial_view = View::factory('admin/main');
// Assign the session value to the partial view's scope as `test`
$partial_view->test = $_SESSION["user"];
// Assign the partial view to the main template's scope as `content`
$this->template->content = $partial_view;
快捷语法:
$this->template->content = View::factory('admin/main', array(
'test' => $_SESSION['user'],
));
答案 1 :(得分:0)
您将test
变量传递给template
视图,但尝试访问admin/main
视图。 test
视图中没有admin/main
变量。这些是不同的观点。每个人都有自己的变量。
您应该将test
设置为admin/main
视图,如:
public function action_getSession()
{
$this->template->content = View::factory('admin/main')
->set('test', $_SESSION["user"]);
}
Kohana也有非常有用的Session
课程。它负责框架内的会话业务。
看看user guide。