#laravel #sql-update #product
Вопрос:
контроллер
public function updateproduct(Request $request, $id)
{
if($request->hasfile('images'))
{
foreach($request->file('images') as $file)
{
$name = time().'.'.$file->extension();
if($file->move(public_path().'/files/', $name)){
Image::create([
'images'=>$name,
'product_id'=>$product->id,
]);
}
}
}
$request->validate([
'name'=>'required',
'description'=>'required',
'images'=> 'nullable',
'price'=>'required|numeric',
'quantity'=>'required|numeric',
]);
$product = Product::findOrFail($id);
$product->name=$request->name;
$product->description=$request->description;
$product->price=$request->price;
$product->quantity=$request->quantity;
$product->update();
}
Существует таблица продуктов, таблица изображений и таблица product_images. Он отлично работает при добавлении нового продукта. Но когда я обновляю запись, вместо обновления данных она создает новую запись.
Ответ №1:
$product = Product::where('id', $id)->first();
if(is_null($product)) {
$product = new Product();
}
$product->name = $request->input('name');
$product->description = $request->input('description');
$product->price = $request->input('price');
$product->quantity = $request->input('quantity');
$product->save();
Комментарии:
1. Все равно это не работает. Он просто перезагружает страницу
2. Тогда проблемы нет, вам нужно будет обновить свой вопрос с более подробной информацией о вашей реализации.
3. Я пропустил упоминание @method(‘ПОМЕСТИТЬ) в форме. Теперь все кончено. Спасибо