Отправить массив с помощью Cakephp Form Helper - PullRequest
0 голосов
/ 09 апреля 2011

У меня есть приведенный ниже код formhelper, где $ spot - это массив переменных:

   echo $form->create('Spot', array('controller' => 'spots', 'action' => 'view'));
                    echo $form->hidden('spotdata', array('value' => $spot));
                    echo $form->end('View');

Когда я печатаю_r ($ this-> data) в моем контроллере, данные спота пустые. Может ли помощник по приему принимать значения, которые являются массивами? Есть какой-либо способ сделать это? Пожалуйста, дайте мне знать, спасибо!

Ответы [ 3 ]

1 голос
/ 09 апреля 2011

Я заметил, что вы отправляете данные для просмотра.Более идиоматично просто отправлять идентификатор в представление, и данные могут быть загружены из базы данных.В этом случае ссылки будет достаточно:

echo $this->Html->link('View', 
    array('controller' => 'spots', 'action' => 'view', $spot['Spot']['id']));

Если вы пытаетесь сохранить состояние между страницами, вам может быть проще и безопаснее использовать SessionComponent для этого (никогда не доверяйте отправленным данным)назад от клиента).В вашем методе контроллера это так просто:

$this->Session->write('Spot.spotData', $spot);

и

$spot = $this->Session->read('Spot.spotData');

для считывания данных.

1 голос
/ 09 апреля 2011

Нет, поскольку он повторяет тег ввода HTML. Значение должно быть строкой или чем-то, что может быть приведено как строка. Просмотр исходного кода HTML.

0 голосов
/ 09 апреля 2011

Вместо циклического перемещения по массиву и повторения каждого ключа вы также можете serialize () массив и поместить его в один скрытый вход.После этого вы можете десериализовать () это

...