Einreichen aktuelle Zeitstempel in CakePHP
-
26-09-2019 - |
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)
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
gesetzttimestampfield TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP