Laravel 5: MassAssignmentException в Model.Stack Overflow

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

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');
}

21

Решение

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

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

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

protected $table = 'your_table_name';
83

Другие решения

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

protected $guarded = array();

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

4

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

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

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

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

use App\User;

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

3

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

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

use Eloquent;

Поместите следующее в начале вашего store метод.

Eloquent::unguard();

лайк:

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

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

0

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

<?php

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

Убедитесь, что вы помещаете $ fillable или $ guard в файл app \ Contacts.php, а не в файл app \ Http \ Controllers \ ContactsController.php. Это должно быть очевидно, но это можно упустить из виду.

0
По вопросам рекламы [email protected]