2016-01-02 26 views
17

sto ottenendo questo errore:laravel 5: MassAssignmentException in model.php

MassAssignmentException in Model.php line 448: _token

Quando sto usando create metodo. Si prega di rivedere codice qui sotto:

contatti.php (Modello):

class Contacts extends Model 
{ 
    protected $table = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at']; 
} 

ContactsController.php (Controller):

public function store(Request $request) 
{   
    $inputs = $request->all(); 
    $contacts = Contacts::Create($inputs); 
    return redirect()->route('contacts.index'); 
} 
+0

[MassAssignmentException a laravel] (https://stackoverflow.com/q/22280136/6521116) –

risposta

70

Per il Mass Assignment Exception: è necessario specificare tutte le campi del modello che si desidera assegnare in serie mediante operazioni di creazione o aggiornamento sulla proprietà $fillable:

protected $fillable = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at']; 

Inoltre, il campo $table dovrebbe contenere soltanto il nome della tabella del modello:

protected $table = 'your_table_name'; 
+1

Grazie è workd – Sandeep

+1

Come potrei dimenticare questo. Grazie. Lavori. – pbalazek

3

Ciò potrebbe accadere nel caso in cui se si è utilizzato il torto importata la classe. se si utilizza il modello utente.

Import sbagliato

// mostly IDE suggestion 
use Illuminate\Foundation\Auth\User; 

corretto modello di importazione

use App\User; 

Ho passato con questo. potrebbe aiutare qualcuno.

+0

Sì, sì (: l'importazione automatica in IDE può confondere a volte –

3

È possibile tutto compilabile colonna:

protected $guarded = array(); 

Aggiungi il tuo modello.

0

Se tutto quanto sopra non funziona, puoi provare a seguire.

Inserire dopo namespace.

use Eloquent; 

Put seguito all'inizio del tuo metodo store.

Eloquent::unguard(); 

come:

public function store(Request $request) 
{   
    Eloquent::unguard(); 
    $inputs = $request->all(); 
    $contacts = Contacts::Create($inputs); 
    return redirect()->route('contacts.index'); 
} 

questo non è raccomandato, però, in quanto ciò rende le cose più vulnerabili agli attacchi. Ma se hai bisogno di una soluzione rapida questo potrebbe aiutare.

0

Controlla modello che hai importato o meno. Se no, allora usalo.

<?php 

namespace App\Http\Controllers\Auth; 
use App\Http\Controllers\Controller; 
use App\User;