0

CakePHP のタイムスタンプに分を追加しようとしています。フォームの処理時にタイムスタンプを取得したい。

覚えておいてください、私はちょうどこのことを学んでいます。

これが私のインデックスビューのフォームコードです...

<?php
echo $this->Form->create('Text');
$expirations = array('9999999'=>'Never','10'=>'10 Minutes','60'=>'1 Hour','1440'=>'1 Day','10080'=>'1 Week','40320'=>'1 Month','525600'=>'1 Year');
echo $this->Form->input('expiration', array('options' => $expirations), array('empty'=>false));
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->end('Upload');
?>

「有効期限」入力から値を取得し、その分数を現在の時刻に追加します。

これに現在使用しているPHPコードは次のとおりです。

DATE_ADD(CURRENT_TIMESTAMP, INTERVAL $expiration MINUTE)

ここで、$expiration は追加する分数です。

ご助力ありがとうございます。

4

2 に答える 2

0

入力にさらに多くのパラメーターがあるという考えはどこから得ましたか?

それは(文書化されているように)あるはずです:

 echo $this->Form->input('expiration', array('options' => $expirations, 'empty'=>false));

PS: 優れた IDE は、コード補完を介してそのようなパラメーターがないことを通知します。

あなたの質問について:保存する前に、いくつかの方法でデータを変更できます。

a) コントローラーレベル

if ($this->request->is('post') || $this->request->is('put')) {
    $this->request['Text']['expiration'] += $yourValue; // we modify it first and then save it 
    if ($this->Text->save($this->request->data)) {...}
}

b) モデル内でコールバックとして (推奨)

public function beforeValidate($options = array()) {
    if (isset($this->data[$this->alias]['expiration'])) {
         $this->data[$this->alias]['expiration'] += $yourValue;
    }
    return true;
}
于 2012-04-08T10:03:10.610 に答える
0

しません

$expiration += ($minutes * 60);

トリックを実行しますか、それとも何かを見逃しましたか?

于 2012-04-08T07:46:00.753 に答える