2017-10-15 2 views
0

J'ai besoin d'aide avec ce modèle de lame, c'est pour la page d'accueil d'un organisme sans but lucratif, j'ai tiré toutes leurs catégories sur la page d'accueil et je peux forer dans la relation pour obtenir les nouvelles désirées mais j'ai un problème dans ma boucle ou quelque chose, laissez-moi vous expliquer, j'ai un bloc principal avec deux colonnes dans chaque colonne je voudrais afficher 4 nouvelles liées à cette catégorie, mais ma boucle se reproduit sur chaque colonne la même sortie, comment puis-je obtenir 2 colonnes avec 8 nouvelles correctement formées, par cela je veux dire pas de duplication des entrées sur la sortie, merci à l'avance.Affichage des données Eloquent dans deux colonnes de bootsrap (même ligne) Laravel

visual example

HomeController

$categories = Category::with('latestNews') ->orderBy('name', 'asc') ->take(9) ->get();

Modèle lame

<!-- block_inner --> 
<div class="block_inner row"> 
    <!-- small_list_post --> 
    <div class="small_list_post col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
     <ul> 
     @foreach($category->latestNews->take(8) as $news)   
      <li class="small_post clearfix"> 
      @if($news->Image_Thumb_Url) 
       <div class="img_small_post"> 
        <img src="{{$news->Image_Thumb_Url}}" alt="{{$news->title}}"> 
       </div> 
      @endif 
       <div class="small_post_content"> 
        <div class="title_small_post"> 
         <a href="#"><h5>{{ str_limit($news->title, 60, ' ...') }}</h5></a> 
        </div> 
        <div class="post_date"><i class="fa fa-calendar"></i> <em><a href="#">{{$news->created_at->diffForHumans()}}</a></em></div> 
       </div> 
      </li> 
     </ul> 
    </div> 
    <!-- // small_list_post --> 

    <!-- small_list_post --> 
    <div class="small_list_post col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
     <ul> 
      <li class="small_post clearfix"> 
      @if($news->Image_Thumb_Url) 
       <div class="img_small_post"> 
        <img src="{{$news->Image_Thumb_Url}}" alt="{{$news->title}}"> 
       </div> 
      @endif 
       <div class="small_post_content"> 
        <div class="title_small_post"> 
         <a href="#"><h5>{{ str_limit($news->title, 60, ' ...') }}</h5></a> 
        </div> 
        <div class="post_date"><i class="fa fa-calendar"></i><em><a href="#"> {{$news->created_at->diffForHumans()}}</a></em></div> 
       </div> 
      </li> 
     @endforeach 
     </ul> 
    </div> 
    <!-- // small_list_post --> 
</div> 
+0

Je ne l'ai pas lu le code, mais êtes-vous sûr que dans votre DB il n'y a pas deux nouvelles qui se ressemblent? –

+0

Salut @Charlie, oui je suis postive à ce sujet c'est sortie le même disque deux fois mais je pense que c'est plus de comment j'ai construit mon modèle insinde ma boucle et il me manque aussi quelque chose, je suis sur la méthode chunk() pense que c'est ce que je dois utiliser pour afficher selon les besoins. ou peut-être une condition comme si c'est le quatrième élément, puis mettre la colonne bootsrap puis terminer la boucle avec le reste des données. –

Répondre

1

Tout d'abord vous avez fait une erreur dans foreach qui est casser le code html.

essayez ceci:

<!-- block_inner --> 
    <div class="block_inner row"> 
    @foreach($category->latestNews->take(8)->chunk(4) as $newsChunk) 
    <!-- small_list_post --> 
    <div class="small_list_post col-lg-6 col-md-6 col-sm-6 col-xs-6"> 
     <ul> 
      @foreach($newsChunk as $news) 
      <li class="small_post clearfix"> 
      @if($news->Image_Thumb_Url) 
       <div class="img_small_post"> 
        <img src="{{$news->Image_Thumb_Url}}" alt="{{$news->title}}"> 
       </div> 
      @endif 
       <div class="small_post_content"> 
        <div class="title_small_post"> 
         <a href="#"><h5>{{ str_limit($news->title, 60, ' ...') }}</h5></a> 
        </div> 
        <div class="post_date"><i class="fa fa-calendar"></i> <em><a href="#">{{$news->created_at->diffForHumans()}}</a></em></div> 
       </div> 
      </li> 
      @endofreach 
     </ul> 
    </div> 
    <!-- // small_list_post --> 
    @endforeach 
</div> 
+0

Merci pour la correction du balisage @Rafael, ça fonctionne comme un charme! J'ai essayé avec take (2) -> chunk (1) et obtenu le résultat attendu merci beaucoup ce sera très utile dans le futur! –

+0

Vous êtes les bienvenus :) – Rafael