0

この方法を使用して CakePHP で誕生日を設定していますが、ページに戻ると常に現在の日付が取得されるため、ページに触れずに保存すると、今日の日付が誕生日として取得されます。

<?php
$attributes = array (
    'minYear' => date('Y') - 100,
    'maxYear' => date('Y') - 0,
    'label'=> false,
    'default' => $user['Profile']['birthday'],
    'value'=>$user['Profile']['birthday'] // how to set the previous saved data?
);
$options = array (
    'id' => 'birthday',
    'after' => '<div class="message">Inserisce la tua data di nascita</div>'
);
echo $this->Form->input('Profile.birthday', $attributes, $options);
?>

以前に保存したデータをデータベースからフォームに設定するにはどうすればよいですか?

4

2 に答える 2

0

あなたの質問から、ある種の編集フォームを書いていると思います。この場合、CakePHP は自動的に保存されたフォーム データを入力に設定する必要があります。default-arrayで安全に破棄valueできるはずです$options

デバッグ$this->form->dataして、データが存在するかどうかを確認します。それ以外の場合は、コントローラーのコードを確認する必要があります。

ところで、入力関数のシグネチャはpublic function input($fieldName, $options = array())であるため、おそらく -array の値を$options-arrayにマージする必要があります$attributes

于 2012-08-27T20:14:32.287 に答える
0

このタイプの入力は、次の形式でデータを格納します。

次の形式でコントローラに値を入れることができます。

$this->request->data['Profile']['birthday']['year'] ='xxxx'; 
$this->request->data['Profile']['birthday']['month']='xx';
$this->request->data['Profile']['birthday']['day'] = 'xx';

ビューで選択したとおりに自動的に表示されます。

あなたのために働かないか尋ねる

于 2012-08-29T12:32:23.820 に答える