2015-06-25 2 views
0

Я пытаюсь использовать fill() для обновления текущей строки в базе данных. Однако, кажется, создается новая строка вместо обновления каждый раз.Laravel-5 using fill() для обновления базы данных

Кто-нибудь знает, что может быть неправильным?

Вот мой код:

$reserve->where('cookie_id', 'idCode')->first(); 
$reserve->fill($request->all())->save(); 

return Redirect::to('checkout'); 
+0

Вы можете оставить полную функцию? Есть несколько вещей, которые могут быть причиной этого в зависимости от того, как вы получаете '$ reverse'. – Wader

ответ

0

Попробуйте что-то похожее на этот

$user = User::where ('cookie_id', 'idCode'); 
$new_user_data = $request->all(); 
$user->fill($new_user_data); 
$user->save(); 

Вы также можете попробовать с помощью обновления()

$affectedRows = User::where('votes', '>', 100)->update($request->all()); 
+0

если вы делаете $ new_user_data = $ request-> all(); который создаст индекс с именем _token с значением токена, которое, скорее всего, отсутствует в вашей таблице, и, следовательно, вы получите исключение –

+0

true, лучшим вариантом является создание собственного массива и передача значений, которые вы ищете. – pl4g4