2017-08-14 135 views
1

我有2個表,其中1個產品有很多prodphotosLaravel選擇第一排的hasMany關係

Database Table Structure

我可以檢索產品的所有prodphotos使用相同的ID,但我的情況下,將列出所有products但只能從prodphotos拍攝1張照片。

控制器:

public function daftarproduk() 
{ 
    $produks = Product::orderBy('created_at', 'desc')->get(); 

    $select = Product::with('prodphotos')->firstorfail(); 
    $photo = $select->prodphotos->pluck('photo'); 

    $kategori = Category::orderBy('created_at', 'asc')->get(); 

    return view('guest.daftarproduk') 
      ->with('produks',$produks) 
      ->with('kategori',$kategori) 
      ->with('select',$select) 
      ->with('photo',$photo); 
} 

查看:

@foreach($produks as $value) 
    <div class="col-xs-6 col-md-4 col-lg-3 box-product-outer"> 
     <div class="box-product"> 
      <div class="img-wrapper"> 
       <a href="detail/{{$value->id}}/{{str_slug($value->name)}}"> 
        <img alt="Product" src="images/gambarproduk/thumb_{{ i dont know what i must throw here to only get first picture }}"> 
       </a> 
      </div> 
      <h6><a href="detail/{{$value->id}}/{{str_slug($value->name)}}">{{$value->name}}</a></h6> 
     </div> 
    </div> 
@endforeach 

我不知道什麼功能,我必須使用從控制器$select$photo得到的第一張照片的名稱。或者我的foreach邏輯錯了?請幫幫我。

回答

1

添加與hasOne類型的特色照片關係到您的Product模型。

Product模型

public function featuredPhoto() { 
    return $this->hasOne(PhotosModel); 
} 

在你的控制器

public function daftarproduk() 
{ 
    // Get the products with featured image 
    $produks = Product::with('featuredPhoto')->orderBy('created_at', 'desc')->get(); 
    $kategori = Category::orderBy('created_at', 'asc')->get(); 

    return view('guest.daftarproduk') 
      ->with('produks',$produks) 
      ->with('kategori',$kategori); 
} 

查看

@foreach($produks as $value) 
    <div class="col-xs-6 col-md-4 col-lg-3 box-product-outer"> 
     <div class="box-product"> 
      <div class="img-wrapper"> 
       <a href="detail/{{$value->id}}/{{str_slug($value->name)}}"> 
        <img alt="Product" src="images/gambarproduk/thumb_{{ $value->featuredPhoto->photo }}"> 
       </a> 
      </div> 
      <h6><a href="detail/{{$value->id}}/{{str_slug($value->name)}}">{{$value->name}}</a></h6> 
     </div> 
    </div> 
@endforeach 
+0

我不知道是否有可能在同一個表使用2關係類型...感謝訣竅和良好的答案。 –

+0

很高興幫助:) – chanafdo