ケーキ2.2.4
データベースsport_year
フィールドをYEARデータ型に設定しています。追加/編集ビューの年メニューを作成するために2つのアプローチを試しましたが、どちらにも独自の問題があります。
使用$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 -'
)
);
イヤーヘルパーは既存のデータを正しく取得して選択しているようですが、ラベルが機能せず、モデルに検証が設定されていても、必要に応じてフィールドが正しくレンダリングされません。それでもデータは必要ですが、モデルのカスタムメッセージを無視し、コントローラーの保存エラーメッセージにフォールバックします。