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');
}
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';
Sie können alle Spalten füllen:
protected $guarded = array();
Fügen Sie Ihr Modell hinzu.
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.
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' ];
}
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.
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.
Ü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;