محمد میرزاخانی
2 سال پیش توسط محمد میرزاخانی مطرح شد
1 پاسخ

array-key-exists در لاراول

سلام دوستان من میخام بررسی کنم با دستور زیر که ببینم محصول داخله سبد خریدم هست یا نه؟

  if(array_key_exists($product->id,$cart->products))
            {}

اما با خطای

array_key_exists(): Argument #2 ($array) must be of type array, Illuminate\Database\Eloquent\Collection given

مواجه میشم و وقتی از $cart->products میام و dd میگیرم مقدار

^ Illuminate\Database\Eloquent\Collection {#1342 ▼
  #items: array:8 [▶]
  #escapeWhenCastingToString: false
}

رو بهم میده حالا چجوری میتونم به هشتا مقدار این بصورت ارایه دسترسی داشته باشم که تابع array-key-exist خطا ازم نگیره؟؟


ثبت پرسش جدید
ابوالفضل رجائی نسب
تخصص : برنامه نویس (laravel-backend-p...
@abol313 2 سال پیش مطرح شد
0

بِسْمِ ٱلْلّٰهِ ٱلْرَّحْمٰنِ ٱلْرَّحِیْم
ٱلْحَمْدُ لِلّٰهِ
سلام

اون یک collection هست و متدهای مفیدی و باحالی هم داره که خوب بدرد میخوره و آرایه هم نیست
و دراصل نیز وقتی بخوای کل محصولات یا چند محصول را به عنوان collection دریافت کنی ، در اصل آرایه چندبعدی هست، و به قول دیگه آرایه ای از آرایه ها(محصولات) هستش که باز خود هرآرایه(محصول) کلیدها و مقادیری(ویژگی های محصول) دارد

با contains متد در collection و قراردادن کلید و مقدار موردنظر واسه اینکه پیدابشه داخل محصولات در نظر خواهد گرفت
و اگر پیدا شد true برمیگرداند
واگر پیدا نشد false برمیگرداند

و متد containsStrict مثل متد بالا هست اما اینجا از === به جای == واسه بررسی انطباق مقدار استفاده میشه و سخت گیر تر هم هست
از این کد استفاده کن

if( $cart->products->contains('id', $product->id) ) {
// there is product id among products
}

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

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