2017-10-07 13 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がtrueの場合、画像を表示し、フラグ変数をに設定しています。あなたが条件$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 

か、確認することができますを追加する必要がある場合$check =1あなたはとてもその真$check > 0をチェックしているループの終わりと!= 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' –