Когда я вошел в систему, я хочу видеть информацию обо всех пользователях, кроме вошедшего в систему пользователя, в Laravel? - PullRequest
0 голосов
/ 08 февраля 2020

home blade

<div class="card-header">Total Users: {{ $users->count() }} </div>

<div class="card-body">
    @if (session('status'))
        <div class="alert alert-success" role="alert">
            {{ session('status') }}
        </div>
    @endif

    <table class="table table-dark table-striped">
        <tr>
            <th>SL</th>
            <th>Name</th>
            <th>Email</th>
            <th>Created at</th>
        </tr>
        @foreach($users as $user)
            <tr>
                <td>{{$loop->index +1}}</td>
                <td>{{ $user-> name}}</td>
                <td>{{$user->email}}</td>
                <td>{{$user->created_at->diffForHumans()}}</td>
            </tr>
     @endforeach
   </table>
</div>

HomeController

public function index()
{
    $users =  User::all();
    return view('home', compact('users'));
}

Когда я вошел в систему, я хочу видеть всю информацию других пользователей в таблице, отличной от зарегистрированного пользователя в Laravel. Как я могу сделать это? 1011 *

Ответы [ 2 ]

2 голосов
/ 08 февраля 2020

В то время как принятый ответ работает, более хорошим подходом было бы использование Laravel s except() Метод сбора :

Метод исключением возвращает все элементы в коллекции, за исключением тех, которые имеют указанные ключи

. Затем ваш запрос просто возвращает всех пользователей, кроме текущего пользователя, вошедшего в ваш просмотр. Никаких логи c по вашему мнению, никаких других изменений не требуется:

public function index()
{
    $users =  User::all()->except(Auth::id);
    return view('home', compact('users'));
}
0 голосов
/ 08 февраля 2020

Если вы передаете текущий идентификатор пользователя вместе со списком пользователей, вы можете просто проверить его по этому идентификатору.

public function index()
{
    $users =  User::all();
    return View::make('home', array(
      'users' => $users,
      'user_id' => Auth::id()  
    ));
}

@foreach($users as $user)
   @if ($user->id != $user_id)
     <tr>
       <td>{{$loop->index+1}}</td>
       <td>{{$user->name}}</td>
       <td>{{$user->email}}</td>
       <td>{{$user->created_at->diffForHumans()}}</td>
     </tr>
   @endif
@endforeach
...