我正在尝试使用cakephp日期字段将月份作为选择输出,将年份作为文本字段输出而不是作为选择字段输出。
以下是我认为输出日期类型字段的传统Cake方式都是选择(我将dateFormat属性添加到当前只显示2个选择框(跳过当天)):
<?php echo $this->Form->input('Payment.credit_card_expiration', array('type' => 'date', 'label' => 'Expiration date', 'dateFormat' => 'MY')) ?>
我暂时做的是我认为是一种黑客攻击,即将其分成两个区域。我不喜欢它,因为它没有显示该字段的验证错误(主要问题),它看起来像丑陋的代码(为什么写丑陋的代码,特别是如果蛋糕有办法做到这一点)。
<?php
echo $this->Form->input('Payment.credit_card_expiration.month', array('type' => 'select', 'label' => 'Expiration date', 'options' => array('Month','Jan','Feb','...')));
echo $this->Form->input('Payment.credit_card_expiration.year', array('type' => 'text', 'label' => ' ', 'placeholder' => 'Year'));
if(isset($this->validationErrors['Payment']['credit_card_expiration'])) {
echo '<div class="error-message">' . $this->validationErrors['Payment']['credit_card_expiration'][0] . '</div>';
echo '<div class="row"><div class="span5"> </div></div>';
}
?>
作为一个说明,我想到可能需要扩展FormHelper。我之前没有这样做过,但我相信我能做到。我只是想知道是否有内置方式或优雅黑客。
这是我在StackOverflow上的第一篇文章,所以我们走了,我会看看会发生什么。感谢您的任何想法或见解,非常感谢。
谢谢!