wake-up-neo.com

Basistabelle oder Ansicht nicht gefunden: 1146 Tabelle Laravel 5

Ich erhalte diesen Fehler, wenn ich versuche, Daten mit Laravel 5, andere Formulare und save () - Methoden in MySQL zu speichern.

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sistemal5.cotizacions' doesn't exist (SQL: insert into `cotizacions` (`customer_id`, `total`, `updated_at`, `created_at`) values (1501, 150.69, 2015-05-11 03:16:25, 2015-05-11 03:16:25))

Hier ist meine Controller-Speichermethode:

public function store(CotFormRequest $request)
    {    
        $quote = new Cotizacion;
        $quote->customer_id = Input::get('data.clientid');
        $quote->total = Input::get('data.totalAftertax');    
        $quote->save();    
    }

Und hier ist mein Modell:

<?php namespace App\Models\Cotizacion;

use Illuminate\Database\Eloquent\Model;


class Cotizacion extends Model {

}

Ich muss etwas wirklich offensichtliches übersehen, weil ich nicht verstehen kann, warum Laravel fügt ein "S" hinzu, die Tabelle ist cotizacion nicht cotizacions.

Wie kann ich das beheben?

34
ray sn0w

Ich vermute, dass Laravel die Pluralform des Wortes, das Sie für Ihren Tabellennamen verwendet haben, nicht bestimmen kann.

Geben Sie einfach Ihre Tabelle im Modell als solche an:

class Cotizacion extends Model{
    public $table = "cotizacion";
87
James Spence

Überprüfen Sie Ihre Migrationsdatei. Möglicherweise verwenden Sie Schema :: table wie folgt:

Schema::table('table_name', function ($table)  {
    // ...
});

Wenn Sie eine neue Tabelle erstellen möchten, müssen Sie Schema :: create verwenden:

Schema::create('table_name', function ($table)  {
    // ...
});
6
Inamur Rahman

Dieses Problem trat auch in laravel 5.2 auf, und wenn die Deklaration des Tabellennamens nicht funktioniert, liegt dies wahrscheinlich daran, dass Sie eine falsche Deklaration oder einen Fehler im Validierungscode in Request haben (falls Sie eine verwenden) )

6
sao