Amir Alsaeed نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 أقوم بجلب بيانات لأغراض تحوي نصوص وصور. ولكن عند إضافة أغراض بدون صورة ومحاولة جلبها مع بقية الأغراض يظهر لدي الخطأ التالي: Trying to access array offset on value of type null وهذا هو الكود الذي أقوم من خلاله بالحصول على الصورة: $image=$user->images->first(); كيف يمكنني تلافي هذه المشكلة عند عدم وجود صور؟ 1 اقتباس
0 محمد أبو عواد نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 يمكنك تعريف متغير في بداية الميثود $image="" ثم نفحص اذا يوجد صورة ام لا باستخدم if وبداخل جسم if نقوم باحضار الصورة ونسندها الى المتغير الذي عرفناه في البداية if($user->images){ $image=$user->images->first(); } يمكنك هكذا تجنب المشلكة اقتباس
0 Wael Aljamal نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 يمكن في PHP من الإصدار الثامن استخدام Null safe operator وهو إشارة الاستفهام للتأكد من أن قيمة الغرض ليست Null في استدعاء دوال عليه مثل: $image=$user?->images?->first(); ^ ^ هذا يمنع حدوث مشاكل في حال كان أحد العناصر Null. اقتباس
0 سمير عبود نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 الخطأ الذي أدرجته لا يُسببه هذا السطر: $image=$user->images->first(); فحتى لو لم يكن للمُستخدم أية صورة سيُرجع السطر أعلاه null. أي أن المُتغير image سيحوي null. ما يعني أنك إن أردت الوصول إلى أحد خصائص الغرض image بالشكل التالي: $image['path'] سيُعطي الخطأ المُدرج في السؤال: Trying to access array offset on value of type null أما إن أردت الوصول للخاصية بإعتبار image كائن بهذا الشكل مثلاً: $image->path; سيُعطي الخطأ التالي: Trying to get property 'path' of non-object و في هذه الحالة يُمكنك إستخدام عامل التحقق من القيمة الفارغة Null Coalescing Operator بهذا الشكل مثلاً: $image['path'] ?? "default image path" و هكذا إن كانت هناك صورة سيتم إرجاع مسارها أما إن لم يكن هنالك صورة سيتم إرجاع مسار الصورة الإفتراضية و هذا فقط مثال للتوضيح. اقتباس
السؤال
Amir Alsaeed
أقوم بجلب بيانات لأغراض تحوي نصوص وصور. ولكن عند إضافة أغراض بدون صورة ومحاولة جلبها مع بقية الأغراض يظهر لدي الخطأ التالي:
Trying to access array offset on value of type null
وهذا هو الكود الذي أقوم من خلاله بالحصول على الصورة:
$image=$user->images->first();
كيف يمكنني تلافي هذه المشكلة عند عدم وجود صور؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.