CakePHP requestAction () альтернативная опция с элементом - PullRequest
1 голос
/ 20 июля 2011

Я нахожусь в ситуации, когда я пытаюсь передать значение из действия контроллера непосредственно элементу.

Единственный способ, которым я знаю, как это сделать, - это requestAction (), но я неМне не нравится использовать эту функцию по причинам, связанным с ресурсами, и это не рекомендуется в руководстве.

Может ли кто-нибудь пролить свет на другой метод?

Вот что я имею сейчас:

Действие Bird Controller:

    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));
}

dir: views / elements / element_array_pass.ctp

debug($bird_elmnt); // nothing being passed here.

dir: views / birds / index.ctp

Я включаю элемент в этот файл, но массив не пройдет.

echo $this->element('element_array_pass',array("bird_elmnt" => $bird_elmnt)); // call to element.

Я хотел бы включить этот элемент в мой index.ctp со значениями, переданными из действия (), которое я включил выше.

Ответы [ 2 ]

1 голос
/ 20 июля 2011
echo $this->element('birds_paginator_element',array('bird_elmnt_var'=>$bird_elmnt_var));
0 голосов
/ 20 июля 2011

Вы можете передать дополнительные данные элементу через 2-й аргумент метода element().

echo $this->element('birds_paginator_element', array(
    'bird_elmnt_var' => $bird_elmnt
));

// In element
var_dump($bird_elmnt_var);

Также прочитайте эту статью от Mark Story.

...