راکت

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

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);
ثبت پرسش جدید

پاسخ‌ها

3
مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

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

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

شاید پاسخ شما همین‌جا باشد

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

foreach ($request->category as $name) {
    $categoryIds[] = category::firstOrCreate(
        ['name' => $name],
        ['name' => $name, 'user_id' => auth()->user()->id]
    )->id;
}

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

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

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