Я использую этот код для редактирования записи базы данных:
public function service_edit($id)
{
$service = Service::find($id);
return view('Super_Admin/service/.service_edit')->with('service', $service);
}
public function service_update(Request $request, $id)
{
$service = Service::find($id);
$input['title_name'] = strtoupper ($request['title_name']);
$input['link'] = strtoupper ($request['link']);
$input['note'] = strtoupper ($request['note']);
$input['image'] = time().'.'.$request->
image->getClientOriginalExtension();
$folder1 = public_path('WEBSITE-FILE/SERVICE/1');
$path1 = $folder1 . $input['image']; // path 1
$request->image->move($folder1, $input['image']);
$path2 = public_path('WEBSITE-FILE/SERVICE/2').$input['image'];// path 2
$path3 = public_path('WEBSITE-FILE/SERVICE/3'). $input['image']; // path 3
$path4 = public_path('WEBSITE-FILE/SERVICE/4'). $input['image']; // path 4
\File::copy($path1, $path2);
\File::copy($path1, $path3);
\File::copy($path1, $path4);
$service->save();
return back()->with('success','UPDATED SUCCESSFULLY .');
}
Я сталкиваюсь с этой ошибкой при отправке формы
"Call to a member function save() on array"
@porloscerros я изменил этот код, форма успешно отправлена, но запись не обновлена в базе данных
Я написал ответ. Вы должны присвоить значения запроса переменной $service (Service Model), а затем сохранить ее.
Вы не обновляете ни один столбец в базе данных.
Вы инициализируете $input
как массив, затем вызываете $input->save()
, поэтому возникает ошибка.
Может быть, вы хотели использовать $service
вместо $input
?
я пробовал это, но данные не обновляются в базе данных, а также не показывают ошибку
Вы не пытались правильно, потому что я предложил тот же ответ @porloscerros. Рад, что хоть это тебе помогло
измените следующую строку и попробуйте
$input= Service::find($id);
я изменил этот код, форма отправлена успешно, но запись в базе данных не обновлена
$service
нужно экономить, а не $input
.
Вы должны присвоить значения запроса переменной $service (Service Object), а затем сохранить ее.
Попробуйте таким образом:
public function service_update(Request $request, $id)
{
$service = Service::find($id);
$service->title_name = strtoupper ($request->title_name);
$service->link = strtoupper ($request->link);
$service->note = strtoupper ($request->note);
$service->image = time().'.'.$request->file('image')->getClientOriginalExtension();
// ...
$service->save();
return back()->with('success','UPDATED SUCCESSFULLY .');
}
$service
нужно экономить, а не$input