Имея подобную проблему, я нашел, что это решение работает лучше всего для меня.
Вы можете использовать вспомогательный метод __construct в паре с массивом $ controller-> helpers.
Поскольку Helper::_construct()
вызывается после Component::beforeRender
, вы можете изменить массив $controller->helpers['YourHelperName']
для передачи данных вашему помощнику.
Код компонента:
<?php
public function beforeRender($controller){
$controller->helpers['YourHelperName']['data'] = array('A'=>1, 'B'=>2);
}
?>
Код помощника:
<?php
function __construct($View, $settings){
debug($settings);
/* outputs:
array(
'data' => array(
'A' => (int) 1,
'B' => (int) 2
)
)
*/
}
?>
Я использую CakePHP 2.0, поэтому это решение следует протестировать для более ранних версий.