Как ограничить даты, которые пользователь может выбрать в поле даты CakePHP FormHelper?

Я хотел бы ограничить пользовательский выбор даты только понедельниками.

Я храню поле даты в базе данных MySQL, и CakePHP автоматически генерирует для меня средство выбора даты в формах добавления/редактирования, когда я использую echo $this->Form->input('date');. Но он генерирует выпадающие меню для года, месяца и дня. Это не кажется хорошим способом ограничить выбор пользователя четырьмя или пятью днями в месяц.

Я просмотрел параметры, доступные для даты и времени. поле ввода на сайте CakePHP, и interval в точности соответствует тому, что мне нужно, но применяется только к полю минут в поле даты и времени и, по-видимому, не влияет на поле даты.

Есть ли чистый способ CakePHP сделать это, или я просто создаю список дат самостоятельно и создаю раскрывающийся список с этими значениями?

Спасибо!


person Andre Geertsema    schedule 03.04.2014    source источник
comment
почему бы вам не использовать jquery datepicker.. Вы также можете ограничить дату на datepicker   -  person Fury    schedule 03.04.2014
comment
Это хороший альтернативный вариант. Я полагаю, нет простого способа заставить Торта сделать это?   -  person Andre Geertsema    schedule 04.04.2014
comment
Вы могли бы быть в состоянии. но это будет стоить вам много времени. очень мало изменений для достижения того, чего вы ожидаете - я думаю, что лучший вариант - это средство выбора даты :)   -  person Fury    schedule 04.04.2014


Ответы (1)


Если вы хотите иметь приятный интерфейс, используйте Jquery DatePicker.

//Cake view
    echo $this->Form->input('created', array('type'=>'text', 'id'=>'created'));

//Jquery 
    $('#created').datepicker({
         dateFormat : 'yy-mm-dd'
    });   

В противном случае вы можете ограничить ввод даты

//Year
echo $this->Form->year('purchased-year', 2000, date('Y'));
//Month
echo $this->Form->month('mob');
//Day
echo $this->Form->day('created');

FormHelper::hour(string $fieldName, boolean $format24Hours, array $attributes)
Creates a select element populated with the hours of the day.

FormHelper::minute(string $fieldName, array $attributes)
Creates a select element populated with the minutes of the hour.

FormHelper::meridian(string $fieldName, array $attributes)
Creates a select element populated with ‘am’ and ‘pm’.

http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#creating-date-and-time-inputs

person Fury    schedule 04.04.2014
comment
Спасибо, заработало! Определенно самое чистое решение, которое я видел. - person Andre Geertsema; 10.04.2014