mardi 26 mai 2020

Check collection exist

I have this code:

@foreach($subCategories as $subCategory)
  <tr data-id="" id="" class="sortItem">
    <td class="text-left">
      {!! Str::limit($subCategory->category_name, 80, '...') !!}
      <p class="text-muted"></p>
    </td>
    <td class="text-center">
      @if ($subCategory->enable == 1)
        <span class="label font-weight-bold label-lg label-light-success label-inline">
          <i class="ft-thumbs-up"></i> aktywny
        </span>
      @else
        <span class="label font-weight-bold label-lg label-light-danger label-inline">
          <i class="ft-thumbs-down"></i> nieaktywny
        </span>
      @endif
    </td>
    <td class="text-center">
      <a href="" class="badge badge-primary badge-md h-30px">
        <i class="ft-aperture"></i> Rozwiń
      </a>
      <a href="" class="badge badge-info badge-md h-30px">
        <i class="ft-aperture"></i> Edytuj
      </a>
      <form method="post" action="" class="d-inline-block" onSubmit="showAlert();{return false;}">
        @method('DELETE')
        
        <input type="submit" class="removeBtn" value="Usuń">
      </form>
    </td>
  </tr>
@endforeach

Sometimes there is an error in the above code:

Trying to get property 'id' of non-object (View: /var/www/resources/views/admin/categories/subcategory_list.blade.php)

When I debug, problem is when in my $subCategory I have:

App\Models\Category {#487 ▼
  #quarded: array:1 [▶]
  #fillable: array:11 [▶]
  +timestamps: false
  #connection: "mysql"
  #table: "categories"
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:12 [▶]
  #original: array:12 [▶]
  #changes: []
  #casts: []
  #classCastCache: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  #hidden: []
  #visible: []
  #guarded: array:1 [▶]
  #pending: null
  #moved: false
}

When I have in debug:

Kalnoy\Nestedset\Collection {#487 ▼
  #items: array:3 [▼
    0 => App\Models\Category {#1423 ▶}
    1 => App\Models\Category {#1422 ▶}
    2 => App\Models\Category {#1426 ▶}
  ]
}

This code work fine.

How can I secure my foreach function so that it doesn't display an error?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire