2015-05-11 6 views
20

Im immer diese Fehlermeldung, wenn ich versuche, Daten zu MySQL speichern anderen Formen mit Laravel 5 und speichern() Methoden funktionieren, aber diese:Basistabelle oder Ansicht nicht gefunden: 1.146 Tabelle Laravel 5

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 mein Controller-Methode speichern:

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 re werden mit Blick auf Allately offensichtliche Ursache kann ich nicht verstehen, warum Laravel fügt ein "S" die Tabelle ist Cotizacion nicht Cotizacions.

Wie kann ich dies beheben?

Antwort

50

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

Geben Sie einfach Ihre Tabelle im Modell als solche:

class Cotizacion extends Model{ 
    public $table = "cotizacion"; 
+3

Das Problem ist, dass Laravel erweitert das ‚S‘, warum? –

+6

Das ist der Standard für Laravel. Sie pluralisieren standardmäßig Tabellennamen (d. H. Das Modell "Geschäft" ist für die Tabelle "Geschäfte"). Wenn Sie nicht möchten, müssen Sie Ihren Tabellennamen manuell angeben. –

+0

Oh wow! Danke!! Ich wusste das sicher nicht! Vielen Dank! Problem gelöst. –

5

ich auch dieses Problem konfrontiert in Laravel 5.2 und wenn der Name der Tabelle erklärt nicht funktioniert, ist es wahrscheinlich, weil Sie eine falsche Erklärung haben oder Fehler in Validierungscode in Anfrage (Wenn Sie eine verwenden)

+0

Hallo !, diese Frage wurde bereits beantwortet, Danke! –

+0

Guter Punkt @sao. Es war ein Fehler in meiner benutzerdefinierten Anfrage. Vielen Dank! – Codearts

-3

James Spence hat Recht, auch mir passiert. Ich benutzte Tischfirmen und Laravel änderte es zu Firmen, die es nicht gab. Grepping fand keine Vorliebe für "Unternehmen".

Dieser Hinweis es Leben retten, wurde es mich verrückt: P

Verwandte Themen