Я хочу создать форму в CakePHP, имея активную команду SecurityComponent
. Пока все хорошо, теперь я хочу добавить пользовательские элементы input
, которые я не могу сгенерировать с помощью FormHelper
. Однако я должен включить эти поля в проверки безопасности и проверки.Как создать ручные входы в CakePHP 2 с помощью SecurityComponent?
Основная проблема заключается в том, что я не могу отображать переключатели вне их меток. Поэтому я делаю их такими же:
<div class="radio radio-inline">
<input id="genderMALE" type="radio" name="data[User][gender]" value="MALE"/>
<label for="genderMALE">Male</label>
</div>
<div class="radio radio-inline">
<input id="genderFEMALE" type="radio" name="data[User][gender]" value="FEMALE"/>
<label for="genderFEMALE">Female</label>
</div>
Что само по себе прекрасно работает. Тем не менее, FormHelper
не имеет уведомления о них, поэтому SecurityComponent
регистрирует это как фальсификацию формы. Честно говоря, моя просьба.
Я попытался сгенерировать входы с помощью FormHelper
, но поддержка радио ограничена. Вариант format
здесь не работает:
Радиоустройства не могут иметь порядок элементов ввода и метки, управляемых этими настройками. - Cookbook
Рядом с этим я не мог найти способ сделать простой отдельностоящий переключатель. И единственный способ, которым я нашел, чтобы принять input
, был проигнорирован в SecurityComponent
.
Что такое способ торта исправить это?
Update 14-09 09:16
Мой текущий фикс/хак будет создавать пользовательские кнопки радио в простом HTML, как показано выше. Затем соедините значение этих радиовходов с полем ввода, созданным с помощью FormHelper
. Используя CSS, я могу скрыть этот вход, позволяя ему изменять JavaScript, а не используя type="hidden"
.
Существуют ли какие-либо опасности/проблемы, которые могут возникнуть при использовании этого метода?
сторона примечание: В конце концов это проблема с дизайном. Тем не менее, я вынужден использовать Bootstrap и оставлю только 2 дня, чтобы закончить свою задачу. И я не хочу идти по пути написания пользовательского CSS/JS, чтобы заставить это работать.