2016-01-02 19 views
17

Ich erhalte diese Fehlermeldung:Laravel 5: MassAssignmentException in Model.php

MassAssignmentException in Model.php line 448: _token

Wenn ich create Methode verwenden. Bitte lesen Sie folgenden Code:

kontakte.php (Modell):

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 in Laravel] (https://stackoverflow.com/q/22280136/6521116) –

Antwort

70

Für die Mass Assignment Exception: Sie sollten alle angeben die Felder des Modells, die Sie durch Erstellungs- oder Aktualisierungsoperationen für die Eigenschaft massenzuweisbar machen möchten $fillable:

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

Außerdem ist das Feld $table sollte nur das Tabellennamen des Modells enthält:

protected $table = 'your_table_name'; 
+1

Dank es – Sandeep

+1

workd Wie ich das vergessen konnte. Vielen Dank. Funktioniert. – pbalazek

3

Dieser Fall passieren könnte, wenn Sie die falsch importierte die Klasse verwendet haben. wenn Sie das Benutzermodell verwenden.

Wrong Import

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

Correct Modell Import

use App\User; 

i durchgemacht haben. könnte jemandem helfen.

+0

Ja, es tat (: Auto-Import in der IDE kann manchmal verwirren –

3

Sie können alle Spalte ausfüllbare:

protected $guarded = array(); 

Ihr Modell hinzufügen.

0

Wenn alle oben genannten fehlschlagen, können Sie versuchen, zu folgen.

Nach dem Namespace einfügen.

use Eloquent; 

Put zu Beginn Ihrer store Methode folgen.

Eloquent::unguard(); 

wie:

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

Dies ist allerdings nicht zu empfehlen, da diese Dinge anfällig für Angriffe macht. Aber wenn Sie eine schnelle Lösung benötigen, könnte dies helfen.

0

Überprüfen Sie das Modell, das Sie importiert haben oder nicht. Wenn nicht, dann benutze dies.

<?php 

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