Benutzer-Werkzeuge

Webseiten-Werkzeuge


laravel:troubleshooting

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
laravel:troubleshooting [2019/10/03 18:05]
webproducer angelegt
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:
  
 Überprüfen Sie, ob der in der Migration definierte Fremdschlüssel (foreign) wie im folgenden Beispiel als "​unsigned"​ angelegt wurde: Überprüfen Sie, ob der in der Migration definierte Fremdschlüssel (foreign) wie im folgenden Beispiel als "​unsigned"​ angelegt wurde:
Zeile 19: Zeile 21:
 $table->​foreign( '​Ziehung_id'​ ) -> references( '​id'​ ) -> on( '​ziehungen'​ ) -> onDelete( '​cascade'​ ); $table->​foreign( '​Ziehung_id'​ ) -> references( '​id'​ ) -> on( '​ziehungen'​ ) -> onDelete( '​cascade'​ );
 </​code>​ </​code>​
 +
 +Mögliche Ursache 2:
 +
 +Überprüfen Sie, ob die Spalte für den Fremdschlüssel vom gleichen Typ ist wie die Spalte in der Fremdtabelle:​ Wenn also die „id“ vom Typ „bigIncrement“ ist muss der Fremdschlüssel vom Typ „bigInteger“ sein. Ist die „id“ hingegen vom Typ „increments“ muss der Fremdschlüssel mit „integer“ angegeben werden. ​
  
 ---- ----
  
-**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.
 +
 +----
 +
 +==== 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:
 +
 +<code php>
 +class Ziehung extends Model
 +{
 +    protected $table = '​ziehungen';​
 +    public $timestamps = false;
 +}
 +</​code>​
 +
 +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]].
laravel/troubleshooting.1570118704.txt.gz · Zuletzt geändert: 2019/10/03 18:05 von webproducer