「CakePHP3」ユーザーのログイン状況を判定、ログイン・ログアウトボタンを作成【入門】

カテゴリー:PHP

前回、ユーザーの登録関連の編集が完了してログイン・ログアウトができるようになったので、今回はヘッダー部分にログイン・ログアウトボタンを追加して行こうと思います。

今回のページでは、CakePHP3でユーザーのログインを判定する方法、CakePHP3の共通部分(ヘッダー、フッター)の編集をする方法から下記の2項目をまとめています。

  • 「CakePHP3でユーザーのログインを判定する方法」
  • 「CakePHP3の共通部分(ヘッダー、フッター)の編集をする方法」

CakePHP3でユーザーのログインを判定する方法

まず最初にユーザーがログインをしているか判定する方法から確認をします。

今回は、getSession()を使用してログイン済みかどうかを判断していきます。(CakePHPのバージョンが3.6.0より前は、getSession() の代わりに session() を使用します。)

下記がgetSession()でCakePHP3のユーザーのログインを判定する方法です。

    <?php if($this->request->getSession()->read('Auth.User.id')):?>
      // ログイン時の処理
    <?php else:?>
      // 未ログイン時の処理
    <?php endif;?>

このコードで取得したユーザーの情報が空でなければログイン済み。空だったらログインされていないという形で使用します。

もし、ユーザーの情報にアクセスしたいときは、配列でユーザーの情報が渡されるのでid等下記の方法でアクセスが可能です。

$this->request-> getSession()->read('Auth.User.id')

ここまで、CakePHP3でユーザーのログインを判定する方法でした。

CakePHP3の共通部分(ヘッダー、フッター)の編集をする方法

src/Template/Layout/default.phpで基本的に共通部分の見た目を指定して行くことができます。

CSSの読み込みなども「default.ctp」で行うのが基本だと思います。

早速、CakePHP3でユーザーのログインを判定する方法を使用してheaderにログインボタンを実装していきます。

ログインボタンを追加する前の画像

CakePHP3ログイン・ログアウトボタン追加前

下記のタグとコードを<ul class=”right”></ul>内の一番上に追加します。

    <?php if($this->request->getSession()->read('Auth.User.id')):?>
       <li><a href="/cms/users/logout">ログアウト</a></li>
    <?php else:?>
       <li><a href="/cms/users/login">ログイン</a></li>
    <?php endif;?>

追加後のコードは下記です。

    // 省略
    <div class="top-bar-section">
      <ul class="right">
      <?php if($this->request->getSession()->read('Auth.User.id')):?>
       <li><a href="/cms/users/logout">ログアウト</a></li>
      <?php else:?>
       <li><a href="/cms/users/login">ログイン</a></li>
      <?php endif;?>
        <li><a target="_blank" href="https://book.cakephp.org/3.0/">Documentation</a></li>
        <li><a target="_blank" href="https://api.cakephp.org/3.0/">API</a></li>
      </ul>
    </div>
    // 省略

ログイン・ログアウトボタンを追加した後の画像

CakePHP3ログイン・ログアウトボタン追加後

ログイン後の画像

CakePHP3ログイン後

これでユーザーのログイン状況に合わせて変更されるログイン・ログアウトボタンが追加できました。

参考:CakePHP3「セッション」


タグ

関連する投稿

ドラクエ好きな社会保険労務士有資格者・ファイナンシャルプランナー技能士検定2級正会員が運営をしています。当ブログではDQMSLを中心にWordPress・HTML・CSS・JS・PHPなどのTips備忘記録や資格関連の情報、その他雑記を発信して行きます。