Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Контроллер Шаблонов
http://forum.kohanaframework.su/viewtopic.php?f=2&t=15
Страница 1 из 1

Автор:  admin [ 12 фев 2012, 21:39 ]
Заголовок сообщения:  Контроллер Шаблонов

Работаем с контроллером шаблонов

Автор:  Serg [ 03 сен 2012, 11:47 ]
Заголовок сообщения:  Re: Контроллер Шаблонов

Здравствуйте!

Я вот только начал изучать этот фреймворк, и у меня возникла вот такая ошибка:

Код:
ErrorException [ Warning ]: Attempt to assign property of non-object

APPPATH/classes/controller/welcome.php [ 17 ]

12         // Передаем данные в шаблон welcome.php
13         $content->age = 'больше 18';
14         $content->name = 'Васька';
15 
16         // Передаем данные в шаблон по умолчанию - main.php
17         $this->template->title = 'Работаем с Контроллером Шаблонов';
18         $this->template->description = 'Учимся передавать данные в шаблоны';
19         $this->template->content = $content;
20    }
21
22 } // End Welcome

Вот код контроллера:
Код:
class Controller_Welcome extends Controller {

    public $template = 'main';
   
   public function action_index()
   {
      $content = View::factory('welcome');
 
        // Передаем данные в шаблон welcome.php
        $content->age = 'больше 18';
        $content->name = 'Васька';
 
        // Передаем данные в шаблон по умолчанию - main.php
        $this->template->title = 'Работаем с Контроллером Шаблонов';
        $this->template->description = 'Учимся передавать данные в шаблоны';
        $this->template->content = $content;
   }

} // End Welcome

Сам темплейт main.php лежит в application / views

Где я допустил ошибку? Вроде все по уроку делал, да и логика понятна :)

Автор:  evgentus [ 03 сен 2012, 11:58 ]
Заголовок сообщения:  Re: Контроллер Шаблонов

Serg писал(а):
Здравствуйте!

Я вот только начал изучать этот фреймворк, и у меня возникла вот такая ошибка:

Код:
ErrorException [ Warning ]: Attempt to assign property of non-object

APPPATH/classes/controller/welcome.php [ 17 ]

12         // Передаем данные в шаблон welcome.php
13         $content->age = 'больше 18';
14         $content->name = 'Васька';
15 
16         // Передаем данные в шаблон по умолчанию - main.php
17         $this->template->title = 'Работаем с Контроллером Шаблонов';
18         $this->template->description = 'Учимся передавать данные в шаблоны';
19         $this->template->content = $content;
20    }
21
22 } // End Welcome

Вот код контроллера:
Код:
class Controller_Welcome extends Controller {

    public $template = 'main';
   
   public function action_index()
   {
      $content = View::factory('welcome');
 
        // Передаем данные в шаблон welcome.php
        $content->age = 'больше 18';
        $content->name = 'Васька';
 
        // Передаем данные в шаблон по умолчанию - main.php
        $this->template->title = 'Работаем с Контроллером Шаблонов';
        $this->template->description = 'Учимся передавать данные в шаблоны';
        $this->template->content = $content;
   }

} // End Welcome

Сам темплейт main.php лежит в application / views

Где я допустил ошибку? Вроде все по уроку делал, да и логика понятна :)


Ну дык $this->template у вас строка, а не объект. Унаследуйте контроллер от Controller_Template, там помоему создается $this->template = View::factory($this->template);

Автор:  Serg [ 03 сен 2012, 14:00 ]
Заголовок сообщения:  Re: Контроллер Шаблонов

Да точно, ошибся с наследованием. Вот изменил немного код:
Код:
$this->template = View::factory($this->template)
          ->bind('content', $content);
      $content = 'Test';
 
        $this->template->content = $this->template;

не совсем уверен в последней строке...
Сейчас у меня просто отображается белая страница (без html который в темплейте), пробовал писать ...factory('main'). но не чего не изменилось.
...приеду дамой попробую разобраться с этим

Автор:  mamahtehok [ 03 сен 2012, 14:29 ]
Заголовок сообщения:  Re: Контроллер Шаблонов

последняя строка, а данном случае вообще не нужна.

Автор:  Serg [ 03 сен 2012, 15:40 ]
Заголовок сообщения:  Re: Контроллер Шаблонов

Всем спасибо, разобрался :)
Код:
class Controller_Welcome extends Controller_Template {

    public $template = 'main';
   
   public function action_index()
   {
      $this->template = View::factory('main')
         ->bind('title', $title)
         ->bind('description', $description)
         ->bind('date', $date);      
      $title = 'Работаем с Контроллером Шаблонов';
      $description = 'Учимся передавать данные в шаблоны';
      $date = 'Test';
      
   }

} // End Welcome

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/