2015-04-08 10 views
6

Quando provo a mantenere i dati del modulo, Laravel lancia un'eccezione di assegnazione di massa.Laravel 5: quando persistono i dati del modulo, _token causa un'eccezione di assegnazione di massa

Nella vista sto usando {!! form::open(...) !!} che so crea _token come campo nascosto.

Quando i dati del modulo viene inviato al controllore, sto usando

$data = Input::all(); 
$order = Order::create($data); 
$order->save(); 

Dovrei essere l'aggiunta di un campo per _token nel mio database? O sto causando un errore facendo qualcos'altro di sbagliato?

risposta

15

Un'eccezione di assegnazione di massa è in genere causata dal fatto che non sono stati specificati gli attributi fillable (o guarded opposti) nel modello. Fare questo:

class Order extends Eloquent { 
    protected $fillable = ['field1', 'foo', 'bar']; 
} 

questo modo non, inoltre, non devono preoccuparsi di _token perché solo i campi specificati saranno riempiti e salvati nel DB non importa ciò che altre cose si passa al modello.

+0

È questo OK? 'Class Order estende Model {protected $ table = 'orders'; protected $ fillable = ['field1', 'foo', 'bar']; ' –

+1

Sì. Ovviamente invece di 'field1' ecc. Dovresti specificare i tuoi attributi attuali. Questo è solo un esempio. – lukasgeiter

5

o

protected $guarded = array(); 
Problemi correlati