Ich versuche, eine neu erstellte Entität zu speichern. Save gibt false zurück, aber ich kann keine Validierungsfehler oder SQL-Fehler sehen und es wird keine Ausnahme ausgelöst.CakePHP 3 neue Entität speichern schlägt fehl, ohne Fehler
Das Entitätsobjekt wird mit newEntity() für das Tabellenobjekt erstellt und dann aufgefüllt. Wenn ich dann save() aufrufe, wird false zurückgegeben. Dies ist die Debug-Ausgabe des Entitätsobjekt nach save() fehlschlägt:
object(App\Model\Entity\TickerValue) {
'from_currency_id' => (int) 1,
'to_currency_id' => (int) 1228,
'created' => (int) 1509594561,
'value' => (float) 0.00726931,
'[new]' => true,
'[accessible]' => [
'*' => false
],
'[dirty]' => [
'from_currency_id' => true,
'to_currency_id' => true,
'created' => true,
'value' => true
],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'TickerValues'
}
Wenn ich versuche, diese Werte manuell in phpMyAdmin Einfügen es funktioniert gut.
Dies ist die Tabelle:
CREATE TABLE 'ticker_values' (
'from_currency_id' int(11) NOT NULL,
'to_currency_id' int(11) NOT NULL,
'created' int(11) NOT NULL,
'value' decimal(24,8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ich Abfrage-Protokollierung versucht Ein- und bin nur ein paar dieser Einträge bekommen:
2017-11-07 01:13:29 Debug: duration=0 rows=0 ROLLBACK
2017-11-07 01:13:29 Debug: duration=0 rows=0 BEGIN
Dieser Code wird von einer Shell-Klasse ausgeführt. Aber in einer anderen Funktion in der gleichen Klasse funktioniert eine sehr ähnliche Sicherung, also glaube ich nicht, dass dies das Problem ist.
Die Tabellen- und Entity-Klassen enthalten keine Logik oder Callbacks.
Danke für jede Hilfe mit diesem!
EDIT: Das war das Problem - ich speicherte die Entität zu einem anderen Modell. Sollte das nicht eine Ausnahme auslösen?
enthält Ihren Code – Beginner
Können Sie auch den Controller, den Sie verwenden, um die Daten zu speichern? – Aarrbee
Hey Leute, habe gerade den Code hinzugefügt. Ich habe es ursprünglich nicht aufgenommen, weil nicht viel los ist, aber hoffentlich wird es die Dinge klarer machen! Wie ich erwähnt habe, verwende ich eine Shell-Klasse anstelle eines normalen Controllers, aber das scheint nicht das Problem zu sein. – Simon