Anonymous
Laravel – добавление данных в несколько таблиц с помощью одной формы вставки
Сообщение
Anonymous » 14 окт 2024, 06:22
Здравствуйте, я пытаюсь вставить данные в 3 таблицы одновременно, но не понимаю, почему это не работает. Это функция вставки
Код: Выделить всё
public function ProductStore(Request $request)
{
$image = $request->file('product_thumbnail');
$name_gen = hexdec(uniqid()) . '.' . $image->getClientOriginalExtension();
Image::make($image)->save('upload/products/thumbnail/' . $name_gen);
$save_url = 'upload/products/thumbnail/' . $name_gen;
$product_id = Product::insertGetId([
'brand_id' => $request->brand_id,
'category_id' => $request->category_id,
'subcategory_id' => $request->subcategory_id,
'subsubcategory_id' => $request->subsubcategory_id,
'product_name' => $request->product_name,
'product_slug' => strtolower(str_replace(' ', '-', $request->product_name)),
'product_code' => $request->product_code,
'product_quantity' => $request->product_quantity,
'selling_price' => $request->selling_price,
'discount_price' => $request->discount_price,
'short_description' => $request->short_description,
'long_description' => $request->long_description,
'specifications' => $request->specifications,
'hot_deal' => $request->hot_deal,
'featured' => $request->featured,
'special_offer' => $request->special_offer,
'special_deal' => $request->special_deal,
'product_thumbnail' => $save_url,
'status' => 1,
'created_at' => Carbon::now(),
]);
$images = $request->file('multi_img');
foreach ($images as $img) {
$multi_img_name = hexdec(uniqid()) . '.' . $img->getClientOriginalExtension();
Image::make($img)->save('upload/products/multi-image/' . $multi_img_name);
$uploadPath = 'upload/products/multi-image/' . $multi_img_name;
MultiImg::insert([
'product_id' => $product_id,
'photo_name' => $uploadPath,
'created_at' => Carbon::now(),
]);
}
if ($request->subsubcategory_id == 1) {
ProductLaptop::insert([
'product_id' => $product_id,
'laptop_os' => $request->laptop_os,
'laptop_cpu' => $request->laptop_cpu,
'laptop_gpu' => $request->laptop_gpu,
'laptop_memory' => $request->laptop_memory,
'laptop_display' => $request->laptop_display,
'laptop_storage' => $request->laptop_storage,
]);
} else if ($request->subsubcategory_id == 2) {
ProductTablet::insert([
'product_id' => $product_id,
'tablet_os' => $request->tablet_os,
'tablet_cpu' => $request->tablet_cpu,
'tablet_memory' => $request->tablet_memory,
'tablet_display' => $request->tablet_display,
'tablet_storage' => $request->tablet_storage,
'tablet_camera' => $request->tablet_camera,
]);
} else if ($request->subsubcategory_id == 3) {
ProductPhone::insert([
'product_id' => $product_id,
'phone_os' => $request->phone_os,
'phone_cpu' => $request->phone_cpu,
'phone_memory' => $request->phone_memory,
'phone_display' => $request->phone_display,
'phone_storage' => $request->phone_storage,
'phone_camera' => $request->phone_camera,
]);
}
Как видите, я пытаюсь добавить данные в таблицу продуктов, таблицу multimages, а затем на основе subsubcategory_id, выбранного в форме в таблице ноутбуков, планшетов или телефонов.
Первые два работают, поскольку они правильно вставляются в таблицу продуктов и multimages с product_id в таблице multimage, соответствующей идентификатору в таблице продуктов.... но условная вставка if не работает. Когда я нажимаю кнопку «Отправить», страница просто обновляется, и ни в одну из таблиц не вставляется никаких данных.
Подробнее здесь:
https://stackoverflow.com/questions/718 ... nsert-form
1728876131
Anonymous
Здравствуйте, я пытаюсь вставить данные в 3 таблицы одновременно, но не понимаю, почему это не работает. Это функция вставки [code] public function ProductStore(Request $request) { $image = $request->file('product_thumbnail'); $name_gen = hexdec(uniqid()) . '.' . $image->getClientOriginalExtension(); Image::make($image)->save('upload/products/thumbnail/' . $name_gen); $save_url = 'upload/products/thumbnail/' . $name_gen; $product_id = Product::insertGetId([ 'brand_id' => $request->brand_id, 'category_id' => $request->category_id, 'subcategory_id' => $request->subcategory_id, 'subsubcategory_id' => $request->subsubcategory_id, 'product_name' => $request->product_name, 'product_slug' => strtolower(str_replace(' ', '-', $request->product_name)), 'product_code' => $request->product_code, 'product_quantity' => $request->product_quantity, 'selling_price' => $request->selling_price, 'discount_price' => $request->discount_price, 'short_description' => $request->short_description, 'long_description' => $request->long_description, 'specifications' => $request->specifications, 'hot_deal' => $request->hot_deal, 'featured' => $request->featured, 'special_offer' => $request->special_offer, 'special_deal' => $request->special_deal, 'product_thumbnail' => $save_url, 'status' => 1, 'created_at' => Carbon::now(), ]); $images = $request->file('multi_img'); foreach ($images as $img) { $multi_img_name = hexdec(uniqid()) . '.' . $img->getClientOriginalExtension(); Image::make($img)->save('upload/products/multi-image/' . $multi_img_name); $uploadPath = 'upload/products/multi-image/' . $multi_img_name; MultiImg::insert([ 'product_id' => $product_id, 'photo_name' => $uploadPath, 'created_at' => Carbon::now(), ]); } if ($request->subsubcategory_id == 1) { ProductLaptop::insert([ 'product_id' => $product_id, 'laptop_os' => $request->laptop_os, 'laptop_cpu' => $request->laptop_cpu, 'laptop_gpu' => $request->laptop_gpu, 'laptop_memory' => $request->laptop_memory, 'laptop_display' => $request->laptop_display, 'laptop_storage' => $request->laptop_storage, ]); } else if ($request->subsubcategory_id == 2) { ProductTablet::insert([ 'product_id' => $product_id, 'tablet_os' => $request->tablet_os, 'tablet_cpu' => $request->tablet_cpu, 'tablet_memory' => $request->tablet_memory, 'tablet_display' => $request->tablet_display, 'tablet_storage' => $request->tablet_storage, 'tablet_camera' => $request->tablet_camera, ]); } else if ($request->subsubcategory_id == 3) { ProductPhone::insert([ 'product_id' => $product_id, 'phone_os' => $request->phone_os, 'phone_cpu' => $request->phone_cpu, 'phone_memory' => $request->phone_memory, 'phone_display' => $request->phone_display, 'phone_storage' => $request->phone_storage, 'phone_camera' => $request->phone_camera, ]); }[/code] Как видите, я пытаюсь добавить данные в таблицу продуктов, таблицу multimages, а затем на основе subsubcategory_id, выбранного в форме в таблице ноутбуков, планшетов или телефонов. Первые два работают, поскольку они правильно вставляются в таблицу продуктов и multimages с product_id в таблице multimage, соответствующей идентификатору в таблице продуктов.... но условная вставка if не работает. Когда я нажимаю кнопку «Отправить», страница просто обновляется, и ни в одну из таблиц не вставляется никаких данных. Подробнее здесь: [url]https://stackoverflow.com/questions/71819714/laravel-adding-data-to-multiple-tables-with-one-insert-form[/url]