Ну, это сложно, и я не совсем уверен, что это не сломает модель MVC.
Я загружаю некоторые данные в контроллер, полученные из модели. Я передаю этот объект на вид почти в каждом действии. Я обрабатываю эти данные из помощника и передаю объект в качестве аргумента:
Контроллер:
$this->('section', $section);
помощник:
<h3><?php echo $parser->section_name($section); ?></h3>
Однако, я думаю, было бы лучше, если бы я мог передать этот $section
объект как частную переменную внутри помощника анализатора. Я мог бы сделать это в первой строке каждого представления:
$parser->section_object = $section;
И каждый метод парсера будет выглядеть примерно так:
function section_name(){
return $this->section_object['Section']['name'];
}
Вопрос: есть ли способ автоматизировать это с контроллера? Поскольку контроллер не может получить доступ к помощнику, я попытался создать помощника из контроллера и установить там локальную переменную:
function beforeFilter(){
$section = $this->Section->getOne();
App::import('Helper', 'Parser');
$ParserHelper = new ParserHelper();
$ParserHelper->section_object = $section;
$this->set('parser', $ParserHelper);
}
Однако, если помощник включает несколько других помощников, они не будут загружены, и помощник вызовет много ошибок.
Спасибо.