web-dev-qa-db-de.com

Laravel 5: MassAssignmentException in Model.php

Ich erhalte diesen Fehler: 

MassAssignmentException in Model.php Zeile 448: _token

Wenn ich die create-Methode verwende. Bitte überprüfen Sie den Code unten:

Contacts.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');
}
21
Sandeep

Für die Massenzuweisungsausnahme : sollten Sie alle Felder des Modells angeben, die Sie durch Erstellungs- oder Aktualisierungsoperationen in der Eigenschaft $fillable massenzuweisbar machen möchten: 

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

Außerdem sollte das Feld $table nur den Tabellennamen des Modells enthalten: 

protected $table = 'your_table_name';
83
Moppo

Sie können alle Spalten füllen:

protected $guarded = array();

Fügen Sie Ihr Modell hinzu.

4
Ferhat KOÇER

Dies kann vorkommen, wenn Sie die Klasse falsch importiert haben. wenn Sie das Benutzermodell verwenden.

Falscher Import 

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

Korrigieren Sie den Modellimport

use App\User;

ich habe das durchgemacht. könnte jemandem helfen.

3
shakee93

Sie müssen Ihrem Modell nur Folgendes hinzufügen (Contact):

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

Zum Beispiel:

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

Wenn alle oben genannten Punkte fehlschlagen, können Sie Folgendes versuchen. 

Fügen Sie Folgendes nach dem Namespace ein.

use Eloquent;

Setzen Sie Folgendes am Anfang Ihrer store-Methode.

Eloquent::unguard();

mögen: 

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

Dies wird jedoch nicht empfohlen, da dies zu Angriffen führen kann. Wenn Sie jedoch eine schnelle Lösung benötigen, kann dies hilfreich sein. 

0
Joynal Abedin

Stellen Sie sicher, dass Sie $ fillable oder $ guarded in der Datei app\Contacts.php und nicht in der Datei app\Http\Controllers\ContactsController.php ablegen. Es sollte offensichtlich sein, aber es kann übersehen werden.

0
Keith Turkowski

Überprüfen Sie das importierte Modell oder nicht. Wenn nicht, dann verwenden Sie diese.

<?php 

 namespace App\Http\Controllers\Auth; 
 use App\Http\Controllers\Controller; 
 use App\User;
0
Rahul Hirve