[laravel] ユーザー一覧からユーザー詳細へ ※認証なしで誰でも見られるページ実装

# 前提
※認証なしで観られるページ（middleware auth設定なし）
自分への備考録（コピペ用）

# 続き
[【コピペでOK】Laravelでユーザーテーブル編集と画像アップロード](https://qiita.com/ProgramingDai/items/7ad30f0f7070dd8c66fa)

# 修正箇所

```php:app/Http/Controllers/UserController
// 中略

    public function show($id){
        $user = User::find($id);
        $params = [
            'user' => $user,
        ];
        return view('user.show', $params);
    }

// 中略
```

```php:routes/web.php
// 修正　middlewareトル
Route::get('/user', 'UserController@index')->name('user.index');
// 追加
Route::get('/user/{user}', 'UserController@show')->name('user.show');
```

```html:resources/views/user/index.blade.php
  @if(!empty($users))
    @foreach($users as $user)
      <a href="/user/{{ $user->id }}" class="alert-link">{{ $user->name }}</a><br />
    @endforeach
  @endif
```

```html:resources/views/user/show.blade.php
@extends('layouts.app')
@section('title','ユーザー詳細')
@section('content')
<div class="container">
    @if(!empty($user))
    <table class="table table-striped table-hover">
    <thead>
    <tr>
        <th></th>
        <th>ID</th>
        <th>名前</th>
        <th>メールアドレス</th>
        <th></th>
    </tr>
    </thead>
    <tbody>
        <tr>
        <td>
            <div>
            @if(!empty($user->thumbnail))
            <img src="/storage/user/{{ $user->thumbnail }}" class="thumbnail">
            @endif
            </div>
        </td>
        <td>{{ $user->id }}</td>
        <td>{{ $user->name }}</td>
        <td>{{ $user->email }}</td>
        <td>
        </td>
        </tr>
    </tbody>
    </table>
    @endif
    <a href="{{ route('user.index') }}" class="alert-link">戻る</a><br />
</div>
@endsection
```

# 追記
認証なしとありで描画切り分け+userのビューでposts_tableの情報描画

```php:app/User.php
...
    public function posts() {
        return $this->hasMany('App\Post');
    }
```

```php:app/Http/Controllers/UserController
    use App\Post; // 追記
...
    public function index(Request $request){
        $authUser = Auth::user();
        $users = User::all();
        $posts = Post::all(); // 追記
        $param = [
            'authUser'=>$authUser,
            'users'=>$users,
            'posts'=>$posts, // 追記
        ];
        return view('user.index',$param);
    }
...
```

```html:resources/views/user/index.blade.php
@extends('layouts.app')
@section('title','ユーザー情報')
@section('content')
<div class="container">
  <div>[ 認証なくても描画可能 ]</div>
  @if(!empty($users))
    @foreach($users as $user)
      <a href="/user/{{ $user->id }}" class="alert-link">{{ $user->name }}</a><br />
    @endforeach
  @endif

  <br />

  @if(!empty($posts))
  <table class="table table-striped table-hover">
    <thead>
    <tr>
      <th>id(posts_table)</th>
      <th>user_id</th>
      <th>title</th>
      <th>message</th>
    </tr>
    </thead>
    <tbody>
    @foreach($posts as $post)
      <tr>
        <td>{{ $post->id }}</td>
        <td>{{ $post->user_id }}</td>
        <td>{{ $post->title }}</td>
        <td>{{ $post->message }}</td>
      </tr>
    @endforeach
    </tbody>
    </table>
  @endif
  
  
  <div>[ 認証ありの場合描画 ]</div>
  @if($authUser)
  <table class="table table-striped table-hover">
  <thead>
  <tr>
    <th></th>
    <th>ID</th>
    <th>名前</th>
    <th>メールアドレス</th>
    <th></th>
  </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <div>
        @if(!empty($authUser->thumbnail))
        <img src="/storage/user/{{ $authUser->thumbnail }}" class="thumbnail">
        @else
        画像なし
        @endif
        </div>
      </td>
      <td>{{ $authUser->id }}</td>
      <td>{{ $authUser->name }}</td>
      <td>{{ $authUser->email }}</td>
      <td>
      <a href="{{ route('user.userEdit') }}" class="btn btn-primary btn-sm">編集</a>
      </td>
    </tr>
  </tbody>
  </table>

  <table class="table table-striped table-hover">
  <thead>
  <tr>
    <th>id(posts_table)</th>
    <th>user_id</th>
    <th>タイトル</th>
    <th>メッセージ</th>
  </tr>
  </thead>
  <tbody>
  @if(!empty($posts) && !empty($authUser))
    @foreach($posts as $post)
      @if($authUser->id == $post->user_id)
        <tr>
          <td>{{ $post->id }}</td>
          <td>{{ $post->user_id }}</td>
          <td>{{ $post->title }}</td>
          <td>{{ $post->message }}</td>
        </tr>
      @endif
    @endforeach
  @endif

  </tbody>
  </table>
  @else
    <a class="nav-link" href="{{ route('login') }}">Loginしてください</a>
  @endif

</div>  
@endsection
```