2016-11-23 2 views
1

Я пытаюсь обновить записи, поэтому я использую метод save(), но запись не может обновляться в базе данных.Метод сохранения не работает в eloquent

это мой код:

public function update(Request $request, $id) 
    { 
     $rules = [ 
      'email' => 'required|email', 
      'firstname' => 'required', 
      'lastname' => 'required' 
     ]; 

     $validator = Validator::make($request->all(), $rules); 

     if ($validator->fails()) { 
      return redirect()->back()->withErrors($validator)->withInput(); 
     } else { 
      $a = Users::find($id)->save($request->all()); 
     } 

     return redirect()->to('admin/users/'.$id); 
    } 

В чем проблема?

P.S: создать способ работы без проблем.

ответ

2

Используйте update() метод вместо:

Users::where('id', $id)->update($request->except(['_method', '_token'])); 

Или попробуйте использовать fill() вручную заполнить данные:

$a = Users::find($id)->fill($request->all())->save(); 

В обоих случаях вы используете mass assignment, поэтому добавьте все свойства, которые вы будете пытается обновить до $fillable массив.

+0

Спасибо, в 'save()' Я получаю эту ошибку "' Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: save() ' – MajAfy

+0

@MajAfy Я забыл изменить' save() 'to' update() 'в коде, извините. Исправлено это. –

+0

Спасибо, работал, но в результате я получаю эту ошибку' Unknown column '_method' в 'списке полей'. Я добавил '_method' в' $ guarded' – MajAfy

Смежные вопросы