2017-09-26 41 views
0

我有一個關於Laravel最佳實踐的問題。我有誰顯示我的所有產品,我測試,如果我的產品形象在我的循環刀片頁,我不理它,如果是這種情況:Laravel:忽略刀片模板中的對象

 @foreach ($products as $product) 
      @if(is_null($product->getMedia()->first())) 
       @continue 
      @endif 
      <div class="col-md-4"> 
       //display image and product informations 
      </div> 
     @endforeach 

我的問題是: 這是正確的嗎?

或souhld我忽略在我的控制器中沒有圖像的產品?

謝謝!

+0

您能否分享您的產品型號? –

+0

更好地在PHP中做邏輯,併發送最終輸出到刀片 – delboy1978uk

回答

2

這取決於您是否將沒有任何圖像的產品視爲「無效」/「無效」,或者您是否不想在此特定視圖中顯示它們。

您的控制器正在定義像「獲取符合特定條件的所有產品」的業務需求。如果「有圖像」是該業務需求的一部分,因爲任何沒有圖像的產品都不應該出售,那麼邏輯就在您的控制器中。

您的看法是定義一個特殊的演示文稿,如「將產品排列在漂亮的網格中」。如果「有圖像」只是在此佈局中工作的要求,則跳過此處可能是合理的。

然而,完全跳過產品在視圖中可能有一些不良後果:

  • 如果這些產品應該發售,由控制器所暗示的返回他們,隱藏它們意味着客戶不能看到他們。
  • 如果您有分頁或找到的結果總數,它將與用戶實際可以看到的產品數量不匹配,除非您小心處理跳過的產品。

因此它是最合適的,如果你正在構建某種「亮點」,其中跳過的產品實際上將在列表中顯示進一步回落,只是沒有那麼突出。

1

這取決於您的媒體。如果它與你的產品是同一張表,那就沒關係,但如果它是一個關係,最好在你的控制器中進行過濾。

+0

這回答我的問題。謝謝。顯然,請執行控制器中的邏輯。覺得我今天很累 –