Создание связанных моделей необязательно - PullRequest
1 голос
/ 16 октября 2011

У меня есть форма, в которой пользователь может ввести адрес местоположения, а также коммунальные предприятия, которые предоставляют услуги по этому адресу. Данные Утилиты связаны со зданием:

Location hasMany Utility

Только в контексте утилиты, поле name является обязательным, поэтому есть проверка, указывающая столько же. Однако в контексте местоположения любая служебная информация является необязательной. Пользователь может выбрать не вводить эти данные при вводе местоположения, которое будет просто указывать, что они не хотят связывать местоположение с какой-либо или со всеми коммунальными компаниями, которые мы отслеживаем.

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

Я знаю, что могу взломать это любым количеством способов (например, удалить класс required с помощью javascript и т. Д.), Но мне интересно, есть ли чистый способ сделать это с помощью Cake API. Я не видел ничего очевидного, поэтому я надеюсь, что кто-то еще был здесь и нашел чистое, простое решение.

Спасибо.

Ответы [ 3 ]

1 голос
/ 17 октября 2011

Вы можете либо спросить пользователя, сколько утилит они хотят добавить, прежде чем создавать форму, либо вы можете динамически добавлять входные данные записей утилит с помощью js (чем позже, тем больше работы, и она не так защищена от ошибок, как прежние). ).

Пример представления (если вы хотите сделать это в 1 представлении):

if (empty($this->data){
  // a form to ask how many utility records the users want to create.
}else{
  // generate the form based on user input.
}

Полагаю, вы знаете, что делать в контроллере.

0 голосов
/ 27 октября 2011

На самом деле есть решение Cake, используйте параметр ошибки

$this->Form->input('Model.field', array('error' => false));

Чтобы отключить вывод сообщения об ошибке, установите для ключа ошибки значение false.

0 голосов
/ 17 октября 2011

Я бы добавил класс к элементу формы, который является необязательным, и использовал бы этот класс для переопределения индикатора "required".

...