نوب
3 سال پیش توسط نوب مطرح شد
3 پاسخ

بهتر نوشتن یک قطعه کد در لاراول

سلام
به نظرتون کد زیر را میشه بهتر و اصولی تر نوشت ؟
لاراول 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);

ثبت پرسش جدید
مهدی اردشیر
تخصص : یه برنامه نویس
@mehdi0121 3 سال پیش مطرح شد
0

سلام برای foreach دومی میتونی اونو به کالکشن تبدیل کنی بعدش ایدی هارو پلاک کنی
https://laravel.com/docs/9.x/collections#method-pluck


مصطفی خراشادی زاده
@safakh 3 سال پیش مطرح شد
0
foreach ($request->category as $category_name) {
        $category  = category::firstOrCreate(
            ['name' => $category_name],
            ['user_id' => auth()->id()]
        );
    $product->categories()->attach($category);
}

حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش آپدیت شد
0
foreach ($request->category as $name) {
    $categoryIds[] = category::firstOrCreate(
        ['name' => $name],
        ['name' => $name, 'user_id' => auth()->user()->id]
    )->id;
}

$product->categories()->sync($categoryIds);

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام