2015-04-06 1 views
0

У меня есть загадочная проблема с рамкой kohana.Невозможно получить доступ к переменной сеанса в контроллере 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 view он возвращает пустую строку, но если я вызываю неявно $ _SESSION ["user"] в admin/main view, он возвращает "superAdmin", как следует.

Может ли кто-нибудь увидеть ошибку при вызове переменной сеанса в контроллере? Спасибо

ответ

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'], 
)); 
0

Вы проходя test переменную template зрения, но при попытке доступа к нему это admin/main вид. В admin/main нет переменной test. Это разные взгляды. Каждый из них имеет свои собственные переменные.

Вы должны установить test на admin/main вид как:

public function action_getSession() 
    { 
     $this->template->content = View::factory('admin/main') 
      ->set('test', $_SESSION["user"]); 
    } 

Также очень полезно Session класс в Kohana. Он заботится о работе сессии в рамках.

Посмотрите на user guide.

 Смежные вопросы

  • Нет связанных вопросов^_^