2015-10-04 1 views
1

Je suis en train d'obtenir des données de deux tables différentes,Laravel obtenir des données à partir de 2 tables où non nul

Il ne ressemble à ça maintenant:

pic 1

Mais je n » Je ne veux pas que les champs vides (Globale-Moderator, Moderator et Proef-Moderator) soient affichés. Comment puis-je faire cela avec ce code?

Controller:

public function ForumTeam() 
    { 
     $roles = Role::where('id', '>', '4')->orderBy('id', 'DESC')->get(); 
     return View::make('team')->with('roles', $roles); 
    } 

Vue:

<div class="panel-group col-sm-offset-1 col-sm-10"> 
    @foreach($roles as $role) 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     <h3 class="panel-title">{{ $role->name }}</h3> 
     </div> 
     <div class="panel-body"> 
     <ul class="list-group"> 

      @foreach($role->user as $user) 
      <li class="list-group-item"> 
       <img src="{{ Config::get('app.url') }}/public/img/avatar.jpg" style="float:left;margin-right:15px;padding-bottom:5px;" class="img-circle" alt="{{ $user->username }}" width="75" height="75"> 
       <h4 style="color:{{ $role->colour }};"><strong>{{ $user->username }}</strong></h4> 
       <p>{{ $user->usertitle }}</p> 
      </li> 
      @endforeach 

     </ul> 
     </div> 
    </div> 
    @endforeach 
</div> 

Je veux cacher la non rempli dans les champs, comment dois-je faire dis propperly?

Mon autre option est d'afficher du texte dans le champ 'vide'. Comme 'Il n'y a personne avec ce rang'.

Merci!

Répondre

1

Vous pouvez/devrait être en mesure d'utiliser:

@foreach($roles as $role) 

    @if($role->user != null || !empty($role->user->name)) 

    @endif 

@endforeach 

Vous pouvez ensuite vérifier pour voir si le role->user n'est pas NULL ou le nom du rôle n'est pas vide. Où name est le nom du rôle, à savoir "Admin", "Modérateur"

Sinon, essayez:

@foreach($roles as $role) 

    @if(count($role->user) >= 1) 
     // Do stuff 
    @endif 

    @endforeach 

Puisque vous obtenez User qui a un à plusieurs, donc il y aura plus d'un utilisateur.

+0

Le deuxième code fonctionne comme un charme! Merci! – Robin

+0

@RobinR Pas de soucis. Un conseil: Si vous avez 'dd ($ roles)' vous pouvez voir comment les données sont réparties. Vous pouvez ensuite cliquer sur les relations, voir qu'il y en a 4, par exemple et voir si elles contiennent des objets vides. Ainsi, vous donnant la réponse que vous cherchiez :) – Phorce

+0

Oh d'accord, merci pour le pourboire! Je ne pensais pas jusque là :) – Robin

0

Vous pouvez ajouter une instruction if après la première @foreach, pour vérifier si le rôle a des utilisateurs,

@foreach($roles as $role) 
    @if(isset($role->user)) 
    ... 
    @endif 
@endforeach 
+0

Non cela ne semble pas fonctionner ... – Robin