3

Yii を使って php を学び始めたのですが、大きな質問があります。

フォームを使用してユーザーを作成しています。フォームで紹介したユーザーのデータをDB(MySQL)に保存したいのですが、DBのdatetimeフィールドに日時も保存しなければなりません。日付を選択する CJUIDATEPICKER のような拡張機能をいくつか見ましたが、日時を選択する拡張機能は知りません。新しいユーザーを作成するときに日時を自動的に保存する方が良いと思います。現在、yyyy-mmmm-dddd hh:mm:ss の形式で日時を導入する必要があるフォームにテキスト ボックスがありますが、役に立たないと思います。

DBにレジスタを作成するときに日時を保存する方法を教えてください。

どうもありがとうございました。

編集:

今、「$model->reg_date=new CDbExpression('NOW()');」を使用します。actionCreate() コントローラー内でうまく動作しますが、何かを書き込む前にユーザー作成フォームのフィールド内にこの日時を表示し、送信をクリックしたときにフォームのすべてのフィールドを保存する方がよいと思います。私はそれをやろうとしましたが、想像できるように、フィールドには「NOW()」しか表示されません

これは、_form.php のフォームのコードの一部です。

<div class="row">
<?php $model->reg_date=new CDbExpression('NOW()');?>
<?php echo $form->labelEx($model,'reg_date'); ?>
<?php echo $form->textField($model,'reg_date'); ?>
<?php echo $form->error($model,'reg_date'); ?>
</div>

誰かが私を助けることができますか?

ありがとうございました!

4

5 に答える 5

2

フォームに日時フィールドを追加する必要はありません *フォームから日時フィールドを削除するだけです *。

ルールでモデルに CDbExpression('NOW()') を追加します。例を参照してください

public function rules()
    {
        return array(
//date_modified and date_created is my database field names..
               array('date_modified','default',
                    'value'=>new CDbExpression('NOW()'),//automatically add the current date in mysql feild
                     'setOnEmpty'=>false,'on'=>'update'),
                   array('date_created,date_modified','default',
                'value'=>new CDbExpression('NOW()'),
              'setOnEmpty'=>false,'on'=>'insert'),
);
}
于 2014-04-09T06:38:28.710 に答える
0

datetimeフィールドが自動的に設定される場合は、代わりtimestampにa に変更し、この回答CURRENT_TIMESTAMPに示されているようにデフォルトとして設定できます。

どうしても使用したい場合は、この回答datetimeで説明されているようにトリガーを使用できます。

于 2013-08-26T00:06:46.480 に答える