سلام
به نظرتون کد زیر را میشه بهتر و اصولی تر نوشت ؟
لاراول 9
توضیحی در مورد کد زیر : فیلدی که ورودی ها را میده میده صورت select2 tags true هست که کاربر بتونه هم از دسته بندی های سایت بده ورودی را و هم اگر نبود همونجا دسته بندی موردنظرتو تایپ کنه
خب حالا با متد firstOrCreate گفتم اگه اسم دسته نبود توی دیتابیس بسازش
خب چون برای متد sync باید حتما آیدی پاس بدیم من یه حلقه دیگه نوشتم و گفتم که آیدی های حلقه قبلی را بگیر و بریز توی آرایه و بده به متد sync
foreach ($request->category as $val) {
$catsId[] = category::firstOrCreate(
['name' => $val],
['name' => $val, 'user_id' => auth()->user()->id]
);
}
foreach ($catsId as $crow) {
$catID[] = $crow->id;
}
$product->categories()->sync($catID);
سلام برای foreach دومی میتونی اونو به کالکشن تبدیل کنی بعدش ایدی هارو پلاک کنی
https://laravel.com/docs/9.x/collections#method-pluck
foreach ($request->category as $category_name) {
$category = category::firstOrCreate(
['name' => $category_name],
['user_id' => auth()->id()]
);
$product->categories()->attach($category);
}
foreach ($request->category as $name) {
$categoryIds[] = category::firstOrCreate(
['name' => $name],
['name' => $name, 'user_id' => auth()->user()->id]
)->id;
}
$product->categories()->sync($categoryIds);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟