CakePHP在使用FormHelper一年菜单时遇到问题
蛋糕2.2.4 我有一个数据库CakePHP在使用FormHelper一年菜单时遇到问题,cakephp,formhelper,Cakephp,Formhelper,蛋糕2.2.4 我有一个数据库sport\u year字段设置为year数据类型。 我尝试了两种方法来为我的添加/编辑视图创建年份菜单,但都有各自的问题 使用$this->Form->input: echo $this->Form->input('sport_year', array( 'type' => 'date', 'dateFormat' => 'Y', 'name' => 'data[Sport][sport_year]',
sport\u year
字段设置为year数据类型。
我尝试了两种方法来为我的添加/编辑视图创建年份菜单,但都有各自的问题
使用$this->Form->input
:
echo $this->Form->input('sport_year', array(
'type' => 'date',
'dateFormat' => 'Y',
'name' => 'data[Sport][sport_year]',
'minYear' => date('Y') - 2,
'maxYear' => date('Y') + 1,
'label' => 'Year',
'empty' => '- select -'
));
代码可以很好地添加或编辑数据(验证也是如此),但是当到达编辑页面时,表单中的现有年份数据没有正确选择。数据数组确实显示[sport_year]=>2012
,但菜单中未选择2012
echo $this->Form->year(
'sport_year',
date('Y') - 2,
date('Y') + 1,
array(
'name' => 'data[Sport][sport_year]',
'label' => 'Year',
'empty' => '- select -'
)
);
year helper似乎可以正确地检索和选择现有数据,但标签不起作用,而且即使我的模型已设置了验证,它也不能按要求正确呈现字段。它仍然需要数据,但它会忽略我的模型自定义消息,并返回到控制器中的保存错误消息。$this->Form->year()
将永远不会显示标签。只有$this->Form->input()
添加标签,因为它是一种包装方法,year()
用于创建年份字段
cake中的代码类似于:
public function input() {
echo '<div>';
echo $this->label(...);
echo $this->year(...);
echo '</div>';
}
或
$this->Form->year()
永远不会显示标签。只有$this->Form->input()
添加标签,因为它是一种包装方法,year()
用于创建年份字段
cake中的代码类似于:
public function input() {
echo '<div>';
echo $this->label(...);
echo $this->year(...);
echo '</div>';
}
或
对于选项1,请执行以下操作:
echo $this->Form->input('sport_year', array(
...
'selected' => 'data[Sport][sport_year]'
));
对于选项1,请执行以下操作:
echo $this->Form->input('sport_year', array(
...
'selected' => 'data[Sport][sport_year]'
));
谢谢,教条。我最终发现,在MySQL中,Cake似乎在年份字段格式上有问题。一旦我把它改到现在,你推荐的所有东西都很有魅力。谢谢,教条。我最终发现,在MySQL中,Cake似乎在年份字段格式上有问题。一旦我把它改成现在的样子,你推荐的所有东西都很有魅力。