2016-03-25 25 views
0

Resimlerimin depolandığı veritabanımda tablo photos var. Bir görüşte, kullanıcı hepsini görebilir, ancak diğerinde, sadece bir görüntünün görülmesini istiyorum, birincisi. Nasıl ayarlanmalı, sadece ilk görüntü gösteriliyor, hepsi değil?Laravel 5.2 - veritabanından ilk görüntüyü göster

Bu benim kodum.

Görünüm

@foreach($business->photos as $photo) 

    <img src="{{ url($photo->thumbnail_path) }}" class="img-thumbnail"> 

@endforeach 

ProfileController

public function profile($id) 
{ 
    $user = User::findOrFail($id); 

    return view('business.profile', compact('user')); 
} 

Photo.php

public function business() 
{ 
    return $this->belongsTo('App\Business'); 
} 


public function baseDir() 
{ 
    return 'images/'; 
} 

public function setNameAttribute($name) 
{ 
    $this->attributes['name'] = $name; 

    $this->path = $this->baseDir() . '/' . $name; 

    $this->thumbnail_path = $this->baseDir() . '/tn' . $name; 
} 

PhotosController sizin görünümlerinde

public function store($id, AddPhotoRequest $request) 
{ 
    $business = Business::fidOrFail($id); 

    $photo = $request->file('photo'); 

    (new AddPhotoToBusiness($business, $photo))->save(); 
} 
+0

u model ve denetleyici gösterebilir? –

+0

numaralı yolla Model :: nerede ("sorgunuzu", koşulu, "") -> ilk(); –

+0

Profilde sadece ilk fotoğrafı görüntülemek, ancak diğerlerinde hala tüm görüntüleri gösterme seçeneği var. – Verse

cevap

0

Çözüm:

@if(count($business->photos)) 
    <img src="{{ url($business->photos[0]->thumbnail_path) }}" class="img-thumbnail" alt=""> 
@else 
    <img src="{{ URL::asset('/img/no-image.png') }}" class="img-responsive" alt=""> 
@endif 
0

Eğer ilk kullandığınız bir array.if alıyorsanız() foreachta o hatayı alırsınız. örneğin

: Bu kullanırsanız

@foreach($business->photos as $photo) 
    <img src="{{ url($photo->thumbnail_path) }}" class="img-thumbnail" 
     alt=""> 
@endforeach 

->here $business->photos holding an array.in that if you use $business->photos->first() .it shows error 

Yani görünümlerinde bir php etiketi kullanmak

<?php $x=$business->photos->first(); ?> 

o zaman sadece bir satır gösterir

ve bu ihtiyaç hangi değeri o bağlamak $ x değişkeninde bulunur.