Laravel получает данные из 2 таблиц, где не ноль

Я пытаюсь получить данные из двух разных таблиц,

Так что теперь это выглядит так:

рис 1

Но я не хочу, чтобы отображались пустые поля (Globale-Moderator, Moderator и Proef-Moderator). Как я могу сделать это с этим кодом;

контроллер:

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

Посмотреть:

<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>

Поэтому я хочу скрыть незаполненные поля, как я должен делать это неправильно?

Другой вариант — показать текст внутри поля «пусто». Как «Там нет никого с таким званием».

Спасибо!

1

Решение

Вы можете / должны иметь возможность использовать:

@foreach($roles as $role)

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

@endif

@endforeach

Затем вы можете проверить, если role->user НЕ NULL ИЛИ имя роли не пусто. ГДЕ name это название роли, то есть «Администратор», «Модератор»

Или попробуйте:

  @foreach($roles as $role)

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

@endforeach

Так как вы получаете User который имеет отношение один ко многим, поэтому будет более одного пользователя.

1

Другие решения

Вы можете добавить оператор if после первого @foreach, чтобы проверить, если роль
имеет пользователей,

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

По вопросам рекламы [email protected]