Я нахожусь в ситуации, когда я пытаюсь передать значение из действия контроллера элементу напрямую.
Я знаю только один способ сделать это с помощью requestAction(), но мне не нравится использовать эту функцию из соображений ресурсов, и это не рекомендуется в руководстве.
Может ли кто-нибудь пролить свет на другой метод?
Вот что у меня есть сейчас:
Действие контроллера птиц:
function element_array_pass() {
$this->paginate['Bird'] = array(
'fields' => array('id', 'name'),
'contain' => array('id', 'name'),
'order' => 'Bird.id'
);
$bird_elmnt = $this->paginate('Bird');
$this->set(compact('bird_elmnt', $bird_elmnt));
}
каталог: views/elements/element_array_pass.ctp
debug($bird_elmnt); // nothing being passed here.
каталог: views/birds/index.ctp
Я включаю элемент в этот файл, но массив не проходит.
echo $this->element('element_array_pass',array("bird_elmnt" => $bird_elmnt)); // call to element.
Я хотел бы включить этот элемент в свой index.ctp со значениями, переданными из action(), который я включил выше.
paginate
- это объект, а не массив. Посмотри в мануале. Он должен показать, как получить к нему доступ. - person Eric   schedule 20.07.2011paginate
это массив в контроллере - person Anh Pham   schedule 20.07.2011'contain' => array('id', 'name')
- person Anh Pham   schedule 21.07.2011