اذهب إلى المحتوى
  • 0

خطأ must be of type Array في لارافل

Amir Alsaeed

السؤال

لدي الحلقة التكرارية التالية ضمن الصفحة:

@foreach($emails as $email)
      <h1>
        {{ $email->content }}
      </h1>
      <p>
        {{ $email->flag }}
      </p>
@endforeach

ولكن عند تشغيل المشروع يظهر الخطأ التالي:

count(): Argument #1 ($var) must be of type Countable|array

علماً بأنني أحصل على اللائحة المطلوبة ضمن المتحكّم الخاص بذلك:

$emails = $user->emails()->where(['verified' => true]);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 2

لأن هذا السطر يقوم بإرجاع اوبجكت من نوع Query Builder وليس Array or Collection

$emails = $user->emails()->where(['verified' => true]);

ولكي يكون الناتج array or collection تحتاج إلي استخدام ال get() function وممكن إذا كنت تريد أعمده معينه يمكن أن تعطيها لل get function as array of columns

// تقوم بإرجاع كل الداتا الخاصه باالإيميلات
$emails = $user->emails()->where(['verified' => true])->get();

// لكي تقوم بإرجاع أعمده معينه وليس كل الداتا 
// مثلا id, email فقط
$emails = $user->emails()->where(['verified' => true])->get(['id', 'email']);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك  أيضا إسترجاع array في  الإستعلام وذلك ب إضافة ()toArray  بعد  ()get. 

على الشكل التالي:

<?php
$emails = $user->emails()->where(['verified' => true])->get()->toArray();

بعد ذلك يمكنك إظهار النتائج التالي:

<?php

@foreach($emails as $email)
      <h1>
        {{ $email['content'] }}
      </h1>
      <p>
        {{ $email['flag'] }}
      </p>
@endforeach

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...