في هذا المقال سوف نتطرق لبعض الخصائص التي يمكن إستخدامها مع foreach في ملفات blade، مثل كيف نعرف عدد الصفوف، كيف يمكن إيقاف loop عند شرط معين، وكيف يمكن إستبدال الكود التالي بسطر واحد.
@if($products->count())
@foreach ($products as $item)
<tr>
<th>{{ $item->id }}</th>
<td>{{ $item->title }}</td>
<td>${{ number_format($item->price,2) }}</td>
<td>{{ $item->cat->title }}</td>
</tr>
@endforeach
@else
<div class="alert alert-danger">No Products Added</div>
@endifحيث يعطي النتيجة التالية

كيف يمكن إعطاء السطر الأول لون مختلف
@if($products->count())
@foreach ($products as $item)
<tr @if($loop->first) class="bg-info" @endif>
<th>{{ $item->id }}</th>
<td>{{ $item->title }}</td>
<td>${{ number_format($item->price,2) }}</td>
<td>{{ $item->cat->title }}</td>
</tr>
@endforeach
@else
<div class="alert alert-danger">No Products Added</div>
@endif 
جاء المتغير $loop لأنه بداخل أي foreach في Laravel blade يوجد هذا المتغير $loop مع مجمووعة من الخصائص مثل :
$loop->index = السطر/ العنصر حسب رقم index
<tr @if($loop->index == 4) class="bg-info" @endif>
هنا يتم تطبيق الكلاس على العنصر الثالث لأن index يبدأ من صفر
مثال على loop->iteration
@foreach ($products as $item)
<tr @if($loop->iteration == 4) class="bg-info" @endif>
<th>{{ $item->id }}</th>
<td>{{ $item->title }}</td>
<td>${{ number_format($item->price,2) }}</td>
<td>{{ $item->cat->title }}</td>
</tr>
@endforeachحيث سيتم هنا تطبيق الكلاس bg-info على السطر الرابع.
مثلا إذا كان السعر أكبر من 15 أن يتم إيقاف loop
@foreach ($products as $item)
<tr>
<th>{{ $item->id }}</th>
<td>{{ $item->title }}</td>
<td>${{ number_format($item->price,2) }}</td>
<td>{{ $item->cat->title }}</td>
</tr>
@if($item->price > 15) @break @endif
@endforeach
الخطوة الأولى بدل من إستخدام count ومن ثم foreach يمكن إستخدام forelse مع empty
@forelse ($products as $item)
<tr>
<th>{{ $item->id }}</th>
<td>{{ $item->title }}</td>
<td>${{ number_format($item->price,2) }}</td>
<td>{{ $item->cat->title }}</td>
</tr>
@empty
<div class="alert alert-danger">No Products Added</div>
@endforelse
الخطوه الثانيه هي فصل محتوى الجدول في ملف منفصل وعمل include له
@forelse ($products as $item)
@include('admin.components.product',['item'=>$item])
@empty
@include('admin.components.no-product')
@endforelseالخطوة الثالثه: إختصار الكود أعلاه من خلال @each
@each('admin.components.product', $products, 'item','admin.components.no-product' )
عمل جد رائع واصل بارك الله فيك
معلومات قيمة جدا اول مرة اعرفها جزاك الله خيرا استمر لو سمحت فى امددنا بمثل هذه المعلومات.
تسلم يا هندسه ربنا يوفقك
مقال جميل جدا ....سؤال معلش ممكن توضيح لآخر سطر بتاع each @each(\'admin.components.product\', $products, \'item\',\'admin.components.no-product\' ) هو هنا ازاي موجود item بين \'\' هو كدا انت بعت متغير ولا اي ...توضيح ياريت 😃
nice
زائر
جميل جدا جزاك الله خيرا