Показать запись вошедшего пользователя в laravel

#php #html #laravel #forms

#php #HTML #laravel #формы

Вопрос:

Я хочу показать список жалоб зарегистрированного пользователя, как бы я написал, если еще в блейде.

 @foreach($data as $row)

        <tr>
            <td>{{ $row->type }}</td>
            <td>{{ $row->station }}</td>
            <td>{{ $row->description }}</td>
            <td>{{ $row->comment }} </td>
            <td>{{ $row->status }}</td>

            <td class="text-center">
                <a href="{{ route('view-complaint', $row->id) }}" class="btn btn-primary btn-sm"><i class="fa fa-eye mr-1" aria-hidden="true"></i>Show</a>
                <a href="{{ route('edit-complaint', $row->id) }}" class="btn btn-warning btn-sm"><i class="fa fa-pencil mr-1" aria-hidden="true"></i>Edit</a>
                <form action="{{ route('delete-complaint', $row->id) }}" method="post" class="d-inline-block">
                    @csrf
                    @method('DELETE')
                    <button type="submit" class="btn btn-danger btn-sm"><i class="fa fa-trash mr-1" aria-hidden="true"></i>Delete</button>
                </form>
            </td>

        </tr>

        @endforeach
  

и это моя индексная функция, она также работает для администратора, чтобы показывать все жалобы всех пользователей. Но я хочу жалобы для конкретного пользователя, который вошел в систему. Я имею в виду, что пользователь может видеть все его жалобы

 public function index()
    {
        $data = Complaint::latest()->paginate(5);
        return view('pages.allComplaints', compact('data'))->with('i', (request()->input('page', 1) - 1) * 5);
    }
  

Как бы я справился с этим!

Ответ №1:

Измените метод Index следующим образом:

 public function index()
{
    if(auth()->user()){
        $data = Complaint::latest()->where('user_id',auth()->user()->id)->paginate(5);
    }else{
        $data = Complaint::latest()->paginate(5);
    }
    return view('pages.allComplaints', compact('data'))->with('i', (request()->input('page', 1) - 1) * 5);
}
  

Комментарии:

1. Я просто делаю, если это в if: if(auth()->user()-> role== ‘USER’) и работает отлично

Ответ №2:

Вы можете попробовать if-else в блейде, как указано ниже:

 @if($user->logged_in)         
      //show records    
@else
      //not logged in    
@endif