【Laravel7】Viewで@ifを使い、ログインしているか判別して処理を変える方法

以下のように、auth::check()を使う。

<div class="mt-4 mb-4">
       <!-- ログインしているときだけ、新規投稿ボタンを表示させる。 -->
       @if(Auth::check())
       <a href="{{ route('post.create') }}" class="btn btn-primary">
           投稿の新規作成
       </a>
       @else
       <p>ログインすると新規投稿できます。</p>
       @endif
</div>

これだけだと、直接URLを入力すると新規投稿画面へ飛んでしまうので、コントローラでも以下の処理を記述しておくようにする。

PostsController.php

    public function __construct()
   {
       // ログイン認証をかける。exceptに入れると、ログインしてなくても見れるようになる。
       $this->middleware('auth')->except('index','show');
   }

この記事が気に入ったらサポートをしてみませんか?