Позвольте мне попытаться объяснить, что я хочу сделать здесь.Я пытаюсь переписать любимый проект из Codeigniter 2.x в Kohana 3.2.x.
Я создал контроллер шаблона сайта (ниже)
class Controller_Site_Template extends Controller_Template
{
public $template = 'templates/hero';
/**
* The before() method is called before your controller action.
* In our template controller we override this method so that we can
* set up default values. These variables are then available to our
* controllers if they need to be modified.
*/
public function before()
{
parent::before();
if ($this->auto_render)
{
// Initialize empty values
$this->template->title = '';
$this->template->content = '';
$this->template->session = '';
$this->template->styles = array();
$this->template->footer_scripts = array();
$session = Session::instance();
$this->template->session = $session;
}
}
/**
* The after() method is called after your controller action.
* In our template controller we override this method so that we can
* make any last minute modifications to the template before anything
* is rendered.
*/
public function after()
{
if ($this->auto_render)
{
$styles = array(
'assets/css/style.css' => 'screen',);
$footer_scripts = array(
'assets/js/libs/jquery-1.7.1.min.js',
'assets/js/application.js',
);
$this->template->styles = array_merge( $this->template->styles, $styles );
$this->template->footer_scripts = array_merge( $this->template->footer_scripts, $footer_scripts );
}
parent::after();
}
После формы входаЯ установил данные сеанса, и я могу получить данные сеанса в контроллерах, которые расширяют Controller_Site_Template, но я не могу получить данные сеанса в любом из файлов View.
Единственный способ получить данные сеанса в файлах представления - это передать данные сеанса в каждый контроллер, который расширяет Template_Site_Template:
$this->template->content->set_global('session',$this->template->session->as_array());
Есть ли простой способустановить и установить сеанс в template_controller, который можно использовать во всех контроллерах, modelc, views, а не использовать set_global на каждом отдельном контроллере?
Я не знаю, хорошо ли я объясняю это, но яя привык к простоте Codeigniter $ this-> session-> userdata ();функция, которая может быть вызвана в любом контроллере, модели и представлении после ее установки.
Заранее благодарю за любой вклад в то, что я делаю неправильно.