Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
laravel:troubleshooting [2019/10/03 19:29] webproducer Unknown Column 'updated_at' |
laravel:troubleshooting [2020/08/22 22:24] (aktuell) webproducer 419 - Page Expired |
||
|---|---|---|---|
| Zeile 5: | Zeile 5: | ||
| ---- | ---- | ||
| - | **SQLSTATE 42000** | + | ==== SQLSTATE 42000 ==== |
| Wenn bei Ihnen beim Ausführen von Artisan-Kommandio "migrate" der SQLSTATE 42000 auftreten sollte hilft der auf der folgenden Seite beschriebene Fix: https://laravel-news.com/laravel-5-4-key-too-long-error | Wenn bei Ihnen beim Ausführen von Artisan-Kommandio "migrate" der SQLSTATE 42000 auftreten sollte hilft der auf der folgenden Seite beschriebene Fix: https://laravel-news.com/laravel-5-4-key-too-long-error | ||
| Zeile 11: | Zeile 11: | ||
| ---- | ---- | ||
| - | **Foreign key constraint is incorrectly formed** | + | ==== Foreign key constraint is incorrectly formed ==== |
| Mögliche Ursache 1: | Mögliche Ursache 1: | ||
| Zeile 28: | Zeile 28: | ||
| ---- | ---- | ||
| - | **ReflectionException : Class does not exist** | + | ==== ReflectionException : Class does not exist ==== |
| Sollte beim ersten Versuch, einen Seed anzulegen diese Fehlermeldung auftreten kann das Kommando „composer dump-autoload“ (z. B. in PHPStorm unter „Tools“ ⇒ „Composer“ ⇒ „Dump Autoloader…“ ausführbar) abhilfe schaffen. | Sollte beim ersten Versuch, einen Seed anzulegen diese Fehlermeldung auftreten kann das Kommando „composer dump-autoload“ (z. B. in PHPStorm unter „Tools“ ⇒ „Composer“ ⇒ „Dump Autoloader…“ ausführbar) abhilfe schaffen. | ||
| Zeile 34: | Zeile 34: | ||
| ---- | ---- | ||
| - | **Unknown Column 'updated_at'** | + | ==== Unknown Column 'updated_at'==== |
| Es macht längst nicht bei jeder Datenbank-Tabelle Sinn, die von Laravel angebotenen Timestamps zu setzen. Wenn in einer Migration die Timestamps 'created_at' und 'updated_at' durch die Funktion '$table->timestamps();' NICHT gesetzt wurden, muss auch das Eintragen in dem zugehörigen Model wie im folgendem Beispiel deaktivert werden: | Es macht längst nicht bei jeder Datenbank-Tabelle Sinn, die von Laravel angebotenen Timestamps zu setzen. Wenn in einer Migration die Timestamps 'created_at' und 'updated_at' durch die Funktion '$table->timestamps();' NICHT gesetzt wurden, muss auch das Eintragen in dem zugehörigen Model wie im folgendem Beispiel deaktivert werden: | ||
| Zeile 47: | Zeile 47: | ||
| Wichtig hierbei ist, dass "timestamps" auch wirklich auf die Sichtbarkeit "public" gesetzt wird. Andernfalls gibt es eine entsprechende Fehlermeldung. | Wichtig hierbei ist, dass "timestamps" auch wirklich auf die Sichtbarkeit "public" gesetzt wird. Andernfalls gibt es eine entsprechende Fehlermeldung. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Datensatz wird nicht aktualisiert (es kommt aber keine Fehlermeldung) ==== | ||
| + | |||
| + | Wenn ein Datensatz nach der "save"-Funktion auf einem Model nicht aktualisiert wird und (leider) keine Fehlermeldung von Laravel ausgegeben wird kann es sein, dass der Primary-Key nicht korrekt ist. Das passiert z. B., wenn eine bereits bestehende Tabellenstruktur in Laravel übernommen wird. Eloquent erwartet als Primary-Key Standardmäßig ein kleingeschriebenes "id". Wenn die id der Tabelle jedoch groß geschrieben ist kann das Model um folgende Zeile ergänzt werden: | ||
| + | |||
| + | <code php> | ||
| + | protected $primaryKey = 'ID'; | ||
| + | </code> | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== 419 - Page Expired ==== | ||
| + | |||
| + | Sollte beim Aufruf einer Route der HTTP-Fehler 419 (Page Expired) zurückgegeben werden kann es an einem fehlenden CSRF-Token liegen. Zwei Lösungsvorschläge hierzu: | ||
| + | |||
| + | - Ergänzen Sie Ihr Formular um den notwendigen CSRF-Token oder | ||
| + | - Wenn die Anfrage von außen kommt und es keine Möglichkeit gibt den Token mitzuliefern (z. B. bei einem API-Aufruf) kann diese Route von der Überprüfung des Tokens ausgeschlossen werden. | ||
| + | |||
| + | Beide Lösungsmögichkeiten werden [[laravel:csrf|hier ausführlich erklärt]]. | ||