2015-05-11 17 views
20

Im ottenendo questo errore quando provo a salvare i dati a MySQL utilizzando laravel 5, altre forme e save() metodi funzionano bene ma questo:Base tavolo o vista non trovato: 1146 Tabella 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)) 

qui è il mio metodo store controller:

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

E qui è il mio modello:

<?php namespace App\Models\Cotizacion; 

use Illuminate\Database\Eloquent\Model; 


class Cotizacion extends Model { 

} 

devo essere vista qualcosa di ri alleato ovvio perché non capisco perché Laravel sta aggiungendo una "S" il tavolo non è cotizacions cotizacions.

Come posso risolvere questo?

risposta

50

Immagino che Laravel non possa determinare il plurale della parola che hai usato per il nome del tuo tavolo.

Basta specificare il vostro tavolo nel modello in quanto tale:

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

Il problema è che laravel sta aggiungendo la 'S', perché? –

+6

Questo è lo standard per Laravel. Essi, per impostazione predefinita, pluralizzano i nomi delle tabelle (ad esempio il modello 'Business' è per la tabella' business'). Se non ti piace, è necessario specificare il nome della tabella manualmente. –

+0

Oh wow! grazie!! Non lo sapevo certo! Grazie! problema risolto. –

5

ho affrontato anche questo problema in laravel 5.2 e se dichiarare il nome della tabella non funziona, è probabilmente perché hai qualche dichiarazione sbagliata o errore nel codice di convalida in Richiesta (Se ne stai usando uno)

+0

Ciao !, questa domanda ha già avuto risposta, grazie! –

+0

Buon punto @ sicuro. È stato un errore nella mia richiesta personalizzata. Grazie! – Codearts

-3

James Spence ha ragione, anche a me è successo. Stavo usando i companys della tabella e laravel lo ha cambiato alle aziende, che non sono esistito. Grepping non ha trovato alcun segno di "società".

Questo suggerimento è risparmiatore di vita, è stato alla guida insano: P

Problemi correlati