2017-10-07 55 views
0

我需要顯示某個圖片。如果圖片有is_primary屬性填充和真實,那麼我需要顯示該圖片。否則,我應該只顯示任何第一個。這是我的代碼。這是行不通的,我看到is_primary圖片和第一。我究竟做錯了什麼?刀片中的過濾陣列

@php 
    $check = 0 
@endphp 
@foreach ($ad->photos as $photo) 
    @if ($photo->is_primary == true) 
    <img src="{{$photo->filename}}" alt="{{$ad->name}}" class="card-image"> 
    @php 
     $check = 1 
    @endphp 
    @endif 
@endforeach 

@if ($check > 0) 
    <img src="{{$ad->photos->first()->filename}}" alt="{{$ad->name}}" class="card-image"> 
@endif 
+0

不應該這是在控制器?這聽起來像商業邏輯而不是簡單的視圖邏輯。 –

+0

我將整個對象傳遞給一個視圖,但是也許我可以在將數據發送到視圖之前做一些事情 – Kira

回答

0

你有問題在你的邏輯。如果is_primary爲真,則顯示圖像並將標記變量設置爲。和循環結束時,你正在檢查$check > 0所以它$check =1當你需要添加條件$check == 0

@php 
    $check = 0 
@endphp 
@foreach ($ad->photos as $photo) 
    @if ($photo->is_primary == true) 
    <img src="{{$photo->filename}}" alt="{{$ad->name}}" class="card-image"> 
    @php 
     $check = 1 
    @endphp 
    @endif 
@endforeach 

@if ($check == 0) 
    <img src="{{$ad->photos->first()->filename}}" alt="{{$ad->name}}" class="card-image"> 
@endif 

或者你可以檢查!真= 1

@if ($check != 1) 
     <img src="{{$ad->photos->first()->filename}}" alt="{{$ad->name}}" class="card-image"> 
    @endif 
+0

我仍然可以看到兩個圖片。 is_primary和第一個。我做了這個$ check!= 1,它工作。我不認爲我知道它是如何工作的!= – Kira

+0

我編輯了我的答案,你可以檢查它 –

+0

閱讀我的答案我已經解釋了爲什麼你必須檢查'!= 1'希望你能得到它 –