Heim > PHP-Framework > Laravel > Hauptteil

[Hinweise zur Vermeidung von Laravel-Gruben] Laravel-Fehlermeldeproblem 42S01 420004 42S22] usw.

藏色散人
Freigeben: 2021-02-03 15:42:07
nach vorne
2267 Leute haben es durchsucht
Kinderschuhe, die frühere Versionen von MySQL-Datenbanken (einschließlich MariaDB) verwenden, können wie folgt geändert werden: Ändern Sie die Datei /project/app/Providers/AppServiceProvider.php

und verwenden Sie dann den Migrationsbefehl erneut:
php artisan migrate
Nach dem Login kopieren

2.SQLSTATE [42S01]: Basistabelle oder -ansicht existiert bereits: 1050Die Tabelle existiert bereits beim Migrieren von Daten,

Lösung:

Löschen Sie die vorhandene Tabelle und migrieren Sie sie dann erneut.

3.PDOException::("SQLSTATE[42000]: Syntaxfehler oder Zugriffsverletzung: 1067 Ungültiger Standardwert für 'published_at'")

Änderungsmethode eins: vim config/database.php

'mysql' => [
     'driver' => 'mysql',.... ...
     'prefix' => '', 
     'strict' => true, // 修改这里
     'engine' => null,
 ],
Nach dem Login kopieren
Geändert in:
'mysql' => [
     'driver' => 'mysql',.... ...
     'prefix' => '', 
     'strict' => false, // 修改这里
     'engine' => null,
 ],
Nach dem Login kopieren
Setzen Sie einen nullbaren Zeitstempel:

$table->nullableTimestamps()
Nach dem Login kopieren

Setzen Sie einen Standard-Zeitstempel
$table->timestamps('created_at');// 会生成created_at\updated_at字段
Nach dem Login kopieren

4.PDOException::("SQLSTATE[42S22]: Spalte nicht gefunden: 105 4 Unbekannte Spalte ' erstellt_at' in 'Feldliste'")Dieses Problem ist auf die Tatsache zurückzuführen, dass das Standard-Zeitstempelfeld während der Tabellenmigration nicht festgelegt wird, sondern die Factory-Methode zum Generieren von Startdaten verwendet wird, die geändert werden können

    public function up()
        {   
          Schema::create('posts', function (Blueprint $table) {
          $table->increments('id');
          $table->string('slug')->unique();
          $table->string('title');
          $table->text('content');
          $table->timestamps(); // 添加这行
          }); }
    Nach dem Login kopieren
  • Wiederholen Sie make:migration

    Um genau zu sein, ist dies keine Gefahr, da der Vorgang selbst nur einmal durchgeführt werden muss

    Aber für Anfänger kann es sein, dass er mehrmals unbeabsichtigt wiederholt wird und Folgendes bewirkt: Bei der Migration wird kein Fehler gemeldet. Das Problem tritt bei der Migration auf:

    Die Lösung besteht darin, den Schemanamen derselben Tabelle zu löschen oder zu ändern.

    5.php artisan db:seed Tabellenname in Plural Singular geändert

    Dies hängt möglicherweise mit Chinglish zusammen. Ausländer sind es gewohnt, Tabellennamen im Plural zu schreiben, daher verwenden sie standardmäßig das englische Wort für Der Tabellenname entspricht dem Modell. Daher müssen Sie das $table-Attribut im Modell umschreiben, z. B.:

    protected $table='student';

    Suchen Sie es im Internet und speichern Sie es es für Ihre eigene Bequemlichkeit und für die Bequemlichkeit anderer

    Das obige ist der detaillierte Inhalt von[Hinweise zur Vermeidung von Laravel-Gruben] Laravel-Fehlermeldeproblem 42S01 420004 42S22] usw.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

  • Verwandte Etiketten:
    Quelle:learnku.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage