علیرضا مه آبادی
2 سال پیش توسط علیرضا مه آبادی مطرح شد
0 پاسخ

حلقه foreach در لاراول

درود بنده برای کد تخفیف می خوام وقتی از ولیدیشن کد تخفیف گذشت داخل سشن اگر اون محصول کد تخفیف داشت داخل پیوت آن یعنی discount اون درصد اعمال بشه .
اما هر کاری می کنم فقط فقط رو یکی اعمال میشه مثلا اگر 4 تا محصول داخل سبد خرید باشه و 3 تاش شامل کد تخفیف شود فقط رو یکی اعمال میشود!! نمی دونم مشکل چیه این discount controller

  $products = Product::find(array_keys($this->storage->all()));
        foreach ($products as $product) {
            if (!is_null($product->discounts)) {
                $request->session()->put('discount', $discount);
            } else {
                $request->session()->put('discount', 0);
            }
        }

$products کل محصول های سبد خرید هست که داخل سشن ذخیره شده
اینم کلاس basket که داخل ویو سبد خرید فراخوانی میشود.

 public function all()
    {
        $products = Product::find(array_keys($this->storage->all()));
        foreach ($products as $product)
            $product->qty = $this->get($product)['qty'];
//اگر تخفیف ثبت شده بود برای هر محصول نمایش بده
        if (Session::has('discount')) {
            $product->discount = Session::get('discount');
        } else {
            $product->discount = 0;
        }
        return $products;
    }

ثبت پرسش جدید

به همدیگه کمک کنیم

به علیرضا مه آبادی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

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

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