Laravel 5: при сохранении данных формы, _token вызывает исключение массового присвоения
Когда я пытаюсь сохранить данные формы, Laravel бросает исключение массового присваивания.
В представлении я использую {!! form::open(...) !!}
, который, как я знаю, создает _token
как скрытое поле.
Когда данные формы отправляются контроллеру, я использую
$data = Input::all();
$order = Order::create($data);
$order->save();
Должен ли я добавлять поле для _token
в мою базу данных? Или я вызываю ошибку, делая что-то еще неправильно?
Ответы
Ответ 1
Исключение массового присваивания обычно вызвано тем, что вы не указали в своей модели атрибуты fillable
(или guarded
напротив). Сделайте это:
class Order extends Eloquent {
protected $fillable = ['field1', 'foo', 'bar'];
}
Таким образом, вам также не нужно беспокоиться о _token
, потому что только заданные поля будут заполнены и сохранены в db независимо от того, какой другой материал вы передадите модели.
Ответ 2
или
protected $guarded = array();
Ответ 3
Убедитесь, что вы помещаете $ fillable или $ guard в файл app\Order.php, а не в файл app\Http\Controllers\OrderController.php.
Ответ 4
Чтобы ответить на ваш первоначальный вопрос. Вы хотели бы сделать unset ($ request ['_ token']); перед твоим созданием.