Я использую Kohana 3.2 и у меня возникают проблемы с вызовом выхода контроллера из другого контроллера.
Что я хочу ...
На некоторых страницах у меня есть меню,а в других нет.Я хочу использовать гибкость системы запросов HMVC.В контроллере страницы я хочу вызвать другой контроллер, который отвечает за создание меню.
Что у меня есть в данный момент:
file menu.php:
<code><?php defined('SYSPATH') or die('No direct script access.');
class Controller_Menu extends Controller
{
private $_model = null;
public function __construct(Request $request, Response $response)
{
parent::__construct($request, $response);
$this->_model = Model::factory('menu');
}
public function action_getMenu()
{
$content = array();
$content['menuItems'] = $this->_model->getMenuItems();
// Render and output.
$this->request->response = View::factory('blocks/menu', $content);
//echo '<pre>'; print_r($this->request->response->render()); echo '
';умереть();}}
somepage.php
public function action_index()
{
$this->template->title = 'someTitle';;
$contentData['pageTitle'] = 'someTitle';
$contentData['contentData'] = 'someData';
#include the menu
$menuBlock = Request::factory('menu/getMenu')->execute();
$menuData = array('menu' => $menuBlock);
$this->template->menu = View::factory('pages/menu')->set('menu',$menuData);
$this->template->content = View::factory('pages/somePage', $contentData);
$view = $this->response->body($this->template);
$this->response->body($view);
}
Если я раскомментирую следующую строку в menu.php, я увижу отображенное меню:
<code>//echo '<pre>'; print_r($this->request->response->render()); echo '
';умереть();
Так что, думаю, с этой частью все в порядке.Проблема в следующей строке в somepage.php:
$menuBlock = Request::factory('menu/getMenu')->execute();
Это возвращает мне объект ответа.Что бы я ни делал, я не получаю вывод в $ this-> template-> menu.
$ this-> template-> menu = View :: factory ('pages / menu') -> set ('menu', $ menuData);
Что нужно сделать, чтобы иметь$ this-> template-> menu содержит представление, так что я могу использовать его правильно?
Надеюсь, все это имеет смысл.Это то, что я хотел бы сделать, но, возможно, я совершенно не на том пути.