Я получаю эту ошибку:
MassAssignmentException в строке Model.php 448: _token
Когда я использую create
метод. Пожалуйста, просмотрите код ниже:
Contacts.php (Модель):
class Contacts extends Model
{
protected $table = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at'];
}
ContactsController.php (Контроллер):
public function store(Request $request)
{
$inputs = $request->all();
$contacts = Contacts::Create($inputs);
return redirect()->route('contacts.index');
}
Для Массовое назначение исключений: вы должны указать все поля модели, которые вы хотите назначить по массе, с помощью операций создания или обновления свойства $fillable
:
protected $fillable = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at'];
Кроме того, поле $table
должен содержать только имя таблицы модели:
protected $table = 'your_table_name';
Вы можете заполнить все колонки:
protected $guarded = array();
Добавьте свою модель.
Это может произойти в случае, если вы использовали неправильно импортированный класс. если вы используете модель пользователя.
Неправильный импорт
// mostly IDE suggestion
use Illuminate\Foundation\Auth\User;
Правильный импорт модели
use App\User;
Я прошел через это. может помочь кому-то
Если все вышеперечисленное не помогает, вы можете попробовать следующее.
Поставьте следующее после пространства имен.
use Eloquent;
Поместите следующее в начале вашего store
метод.
Eloquent::unguard();
лайк:
public function store(Request $request)
{
Eloquent::unguard();
$inputs = $request->all();
$contacts = Contacts::Create($inputs);
return redirect()->route('contacts.index');
}
Это не рекомендуется, так как это делает вещи уязвимыми для атак. Но если вам нужно быстрое решение, это может помочь.
Проверьте модель, которую вы импортировали или нет. Если нет, то используйте это.
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\User;
Убедитесь, что вы помещаете $ fillable или $ guard в файл app \ Contacts.php, а не в файл app \ Http \ Controllers \ ContactsController.php. Это должно быть очевидно, но это можно упустить из виду.