irham dollah
irham dollah

Reputation: 169

How to make button visible once to admin-type user in Laravel?

I want to make ADD button only visible to admin-type user. My code looks like this:

@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

But, it returns lot of ADD button according to number of all users because of foreach loop. If I remove foreach loop, it will show error:

Undefined variable: user

How can I solve this problem?

Upvotes: 3

Views: 943

Answers (2)

Lijesh Shakya
Lijesh Shakya

Reputation: 2540

You do not need to use foreach loop to check authenticated user having type admin

You need to remove passing id into the user.create route

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

Upvotes: 1

farooq
farooq

Reputation: 1673

It's because of you are removing the foreach , but using the variable $user again inside the routes . Please remove the $user->id and instead, use 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

Upvotes: 1

Related Questions