Исправлено добавление записи в CakePHP с некоторыми параметрами - PullRequest
1 голос
/ 09 января 2010

Я уверен, что такого рода проблемы должны быть распространены в cakephp (который я недавно начал использовать), но мне не удалось найти четкий ответ.среди прочего, таблицы, называемые клиентами и контактами, в отношениях «один ко многим» (у клиента есть много контактов; контакт принадлежит клиенту).Когда я добавляю запись в таблицу контактов (/ contacts / add), я могу выбрать клиента (customer_id) из поля выбора, содержащего всех клиентов в базе данных.Как настроить его так, чтобы я мог сначала выбрать клиента (/ Customers / View / 6), а затем добавить контакт для этого конкретного клиента (например, / contacts / add / 6);а затем удалите поле выбора из формы «добавить контакт» (возможно, заменив его скрытым полем customer_id)?

Ответы [ 3 ]

5 голосов
/ 09 января 2010

Есть несколько способов сделать это, но я думаю, что лучше всего использовать именованные параметры .

По сути, в вашем views / Customers / view.ctp вы добавляете customer_id к контактам / добавить ссылку:

$html->link(__('Add contact', true), array('controller' => 'contacts', 'action' => 'add', 'customer_id' => $customer['Customer']['id']));

и в ваших views / contacts / add.ctp вы проверяете указанный параметр и используете скрытое поле:

if (isset($this->params['named']['customer_id'])) {
    echo $form->input('customer_id', array('type' => 'hidden', 'value' => $this->params['named']['customer_id']));
} else {
    echo $form->input('customer_id');
}

или выбор с уже выбранным клиентом:

echo $form->input('customer_id', array('selected' => @$this->params['named']['customer_id']));
1 голос
/ 29 июля 2011

Чтобы решить проблему безопасности с помощью скрытых полей, вы можете использовать компонент безопасности торт, который блокирует их, чтобы предотвратить подделку. Он работает просто добавив его из коробки.

1 голос
/ 17 сентября 2010

Однако это не решение проблемы, когда вы хотите защитить информацию на местах. Это все еще может быть получено с другим значением. Как насчет способа установить его в контроллере перед сохранением ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...