I have an array of collection like this:
array:2 [▼
0 => Illuminate\Support\Collection {#1401 ▼
#items: []
#escapeWhenCastingToString: false
}
1 => Illuminate\Support\Collection {#1405 ▼
#items: array:4 [▼
0 => {#1407 ▼
"id": "887923fe-1993-4e5b-8a99-699d66be129c"
"employee_id": "887923fe-1993-4e5b-8a99-699d66be129c"
"in_time": "2022-01-10 11:31:44"
There's a null #items: inside it. And whenever I'm trying to loop the data, I always got error property not exist. I know it because the first collection item in my array is null. But I don't know how to skip it.
I've tried to use isNotEmpty(), but still got the error
@foreach ($attendance as $data)
@if ($data->isNotEmpty())
<td>{{ $data->name ?? '' }}</td>
<td>{{ $data->alias ?? '' }}</td>
...
CodePudding user response:
You can use 2 approach.
First, checking null data in loop by counting the array
// Blade
@foreach ($attendance as $data)
@if (count($data) > 0)
<td>{{ $data->name ?? '' }}</td>
<td>{{ $data->alias ?? '' }}</td>
...
@endif
@endforeach
Or, checking in database with Eloquent method whereNotNull, so null data will not appear in your blade variable
// Eloquent
Model::whereNotNull('column_name')
Laravel 8.x, Database: Query Builder, additional-where-clauses
CodePudding user response:
Use @if to check for NULL
@foreach ($attendance as $data)
@if (!empty($data))
<td>{{ $data->name ?? '' }}</td>
<td>{{ $data->alias ?? '' }}</td>
...
