Как сделать кнопку видимой один раз для пользователя типа admin в Laravel? - PullRequest
3 голосов
/ 28 февраля 2020

Я хочу сделать кнопку ADD видимой только пользователю типа администратора. Мой код выглядит так:

@foreach($users as $user)
  @if(Auth::user()->type=='admin')
    <a href="{{ route('User.create', ['id'=>$user->id ]) }}" class="btn btn-default</i> ADD</a>
  @endif
@endforeach

Но он возвращает партию кнопки ADD в соответствии с количеством всех пользователей из-за foreach l oop. Если я удаляю foreach l oop, будет отображаться ошибка:

Неопределенная переменная: пользователь

Как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Вам не нужно использовать foreach l oop для проверки аутентифицированного пользователя, имеющего тип admin

Вам необходимо удалить передаваемый идентификатор в user.create route

@if(Auth::user()->type == 'admin')
<a href="{{ route('User.create') }}" class="btn btn-default</i> ADD</a>
@endif
1 голос
/ 28 февраля 2020

Это потому, что вы удаляете foreach, но снова используете переменную $user внутри routes. Удалите $user->id и вместо этого используйте Auth :: user () -> id.

  @if(Auth::user()->type=='admin')
    <a href="{{ route('User.create', ['id'=>Auth::user()->id ]) }}" class="btn btn-default</i> ADD</a>
  @endif
...