Подтвердить что ты не робот

Laravel 5: исключение MassAssignmentException в Model.php

Я получаю эту ошибку:

Исключение MassAssignmentException в строке Model 443.: _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');
}
4b9b3361

Ответ 1

Для Exception Mass Assignment: вы должны указать все поля модели, которые вы хотите назначить по массе, путем создания или обновления операции над свойством $fillable:

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

Кроме того, поле $table должно содержать только имя таблицы модели:

protected $table = 'your_table_name';

Ответ 2

Это может произойти в случае, если вы использовали неправильно импортированный класс. если вы используете модель пользователя.

Неверный импорт

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

Правильный импорт модели

use App\User;

Я прошел через это. может помочь кому-то.

Ответ 3

Вы можете использовать все столбцы:

protected $guarded = array();

Добавьте свою модель.

Ответ 4

Если все вышеперечисленное не удается, вы можете попробовать следующее.

Поместите следующее после пространства имен.

use Eloquent;

Следуйте в начале вашего метода store.

Eloquent::unguard();

like:

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

Это не рекомендуется, так как это делает вещи уязвимыми для атак. Но если вам нужно быстрое исправление, это может помочь.

Ответ 5

Проверьте модель, которую вы импортировали или нет. Если нет, используйте это.

<?php 

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