Получение ошибки: неопределенная переменная;что делать? - PullRequest
1 голос
/ 30 августа 2011

Я использую каркас Kohana 3.2. У меня есть одна переменная со статической строкой. Код для index.php контроллера:

 class Controller_Index extends Controller_Template {
    public function action_index()
    { 
      $articles_ = Model::factory('index')->do_magic();
      $view_content = View::factory('index/index')->set('query', $articles_);
      $this->response->body(View::factory('template/index')
        ->set('page_title', 'Sākums')                      
        ->set('content', $view_content));             
    }
} // End Welcome

И код для контроллера шаблонов (template.php):

class Controller_Template extends Kohana_Controller_Template {
  public $template = 'template/index';
  public function before() 
  {
    parent::before();
    $config = Kohana::$config->load('common');
    $this->template
      ->set('site_name', $config->site_name);
  }
}

И мой конфигурационный файл (common.php)

return array (
  'site_name' => 'reGative.id.lv',
)

Я получаю ошибку: ErrorException [ Notice ]: Undefined variable: site_name. Где проблема?

1 Ответ

2 голосов
/ 30 августа 2011

Попробуйте:
$this->template ->set('site_name', $config->get('site_name'));

Редактировать: После второго взгляда я думаю, что вы сделали свою жизнь тяжелее.Я немного упростил ваш код:

class Controller_Index extends Controller_Template {
    public function action_index()
    { 
      $articles_ = Model::factory('index')->do_magic();
      $this->template->page_title = 'Sākums';
      $this->template->content = View::factory('index/index')->set('query', $articles_);                  
    }
} // End Index

class Controller_Template extends Kohana_Controller_Template {  
  public $template = 'template/index';  
  public function before()   
  {  
    parent::before();   
    $this->template->site_name = Kohana::$config->load('common')->get('site_name'); 
  }
}
...