Home > CakePHP, MySQL > CakePHP – SaveField mit MySQL Funktionen wie z.B. Now()

CakePHP – SaveField mit MySQL Funktionen wie z.B. Now()

Dummerweise erlaubt es CakePHP nicht beim aktualisieren eines einzelnen Datenbankfeldes auf MySQL aufzurufen. Eine kurze Rechereche braucht auch keine wirkliche Abhilfe. Das einzige was ich gefunden habe ist ein Hinweis darauf dass schon mal jemand diese Funktion vermisst hat, auch eine Patch möglich ist, dieser aber nicht in die das offizielle Release aufgenommen wird.Einzelheiten dazu findet man im Cake Ticketsystem

Ich mich dazu entschieden meine Datenbank Klasse nicht zu patchen, es reicht ja schon dass ich für eine saubere Ausgabe von Monatsnamen im Core rumstochern muss. Auf eine weitere Ausnahme und Fehlerquelle habe ich keine Lust mehr. Statdessen habe ich mir lieber eine simple Funktion in den Application Controller gelegt.

// Im Application Controller
/**
 * creates a date value, suitable for mysql datetime fields
 *
 * @return string
 * @author Ralf Kramer
 */
function now(){
	return strftime('%Y-%m-%d %H:%M:%S', time());
}
 
// Im Controller dann:
$this->Model->saveField('a_datetime_field', $this->now());
Categories: CakePHP, MySQL Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.