Frage

Was ist die Methode, einen aktuellen Zeitstempel vorzulegen direkt auf einem INSERT oder einen UPDATE? Wenn ich regelmäßig SQL ausgeführt wurde, würde ich die Funktion NOW() für das spezifische SQL-Feld auf Vorlage verwenden. Wie würde ich das mit CakePHP?

$this->Model->save($this->data)
War es hilfreich?

Lösung

In CakePHP, können Sie die Funktion NOW() unescaped sind durch DboSource::expression mit

$this->data['SomeModel']['your_datetime_field'] = DboSource::expression('NOW()');
$this->Model->save($this->data);

Dies ist die bevorzugte Art und Weise der Einbeziehung von MySQL-Funktionen in Ihrem speichert.

http://api.cakephp.org/2.3/class-DboSource. html # _expression

Andere Tipps

Wenn Sie die erstellten und modifizierten Spalten in Ihnen Tabelle hinzufügen, werden sie automatisch mit aktuellen Zeitstempel bestückt werden. Wenn der Fall ist anders - d. H Sie ein Feld füllen, die auf Sie später ändern möchten, wahrscheinlich die edorian-Lösung unter Verwendung von am besten

Sie können Zeitstempel-Feld auf Auto-Initialisierung und Auto-Update

gesetzt
timestampfield TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

http://dev.mysql.com/doc/refman/ 5.0 / de / timestamp.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top