Для тех из вас, кто, возможно, читал это ранее, я провел небольшое исследование и полностью переработал свой вопрос. У меня возникла проблема, когда мои запросы формы блэкхолдов компонентом безопасности, хотя все работает нормально, когда компонент безопасности отключен. Я проследил это до одной строки в форме:
<?php echo $form->create('Audition');?>
<fieldset>
<legend><?php __('Edit Audition');?></legend>
<?php
echo $form->input('ensemble');
echo $form->input('position');
echo $form->input('aud_date');
// The following line works fine...
echo $form->input('owner');
// ...but the following line blackholes when Security included
// and the form is submitted:
// echo $form->input('owner', array('disabled'=>'disabled');
?>
</fieldset>
<?php echo $form->end('Submit');?>
(я закомментировал оскорбительную строку для ясности) Я думаю, что следую правилам, используя помощник по формам; насколько я могу судить, это ошибка в компоненте Security, но я слишком много CakePHP n00b, чтобы знать наверняка. Мне бы очень хотелось получить отзывы, и если это реальная ошибка, я отправлю ее команде CakePHP. Я также хотел бы знать, просто ли я тупой и упускаю что-то очевидное здесь.
(извините за комментарии здесь, но мне не хватило места для них в комментариях)
ОБНОВЛЕНИЕ : Спасибо, Джеш, вы на 100% правы в этом - «входное значение не будет отправлено, когда оно отключено». Я даже посмотрел его на официальной спецификации HTML , где говорится: «[Отключенный элемент] не может получать пользовательский ввод, и его значение не будет отправлено вместе с формой». Но Cake IS отправив значение с формой! Когда я отключаю использование Компонента безопасности, я могу посмотреть на данные POST, отправленные с формой, и, конечно же, поле «владелец» было отправлено! К сожалению, это именно то поведение, которое я хотел, но, похоже, оно не соответствует официальной спецификации HTML ... поэтому я думаю, что это ошибка стандартного помощника по формам. Я сообщу об этом команде CakePHP как об ошибке, но я хотел бы услышать от любого, кто может подтвердить или опровергнуть это.
Кроме того, Джеш, ваша идея использовать безопасный ключ и установить для него значение false прекрасно работает, но я действительно не хочу оставлять это поле незащищенным (на самом деле, я ОСОБЕННО не хочу оставлять это поле незащищенным) и мне кажется, что не должен был. На самом деле, сейчас я думаю, что это также может быть ошибкой в компоненте безопасности; Я использую FormHelper для создания моих форм здесь - так не должен ли компонент Security справиться с этим ??
@ Майлз: ваше решение тоже отлично работает - спасибо! Но это все еще оставляет открытыми те же вопросы, которые я поднял выше.