CakePHPのAuthComponentで、ログイン機能を実装している状態とします。
AuthComponentはlogin()
メソッドの他にも使い易い機能があります。
今回はその中でも、user()
を使用します。
これは、現在ログインしているユーザーの情報を取得するメソッドです。
user()
については、下記の記事が分かりやすいので、さらに知りたい方はご覧になってください。
【CakePHP】Authコンポーネント
ログインユーザーの情報を取得
今回実装したいページの関数内にて、ログインユーザーの情報を取得します。
UsesController.php
public function index() {
// ...
// ログインユーザーの情報を取得
$user = $this->Auth->user();
// ビューに渡す
$this->set('user', $user);
// 中に入っている配列を確認(必要なければ消してください。)
var_dump($user);
// ...
}
もし中に入っている値を確認したければ、var_dump
で確認しましょう。
ビューにて出しわけ
今回は、ログイン状態のときはログアウトを、ログインしていないときはログインを出すようにします。
index.ctp
if (isset($user)) {
// ログインしているとき
// ログアウトへのリンクをだす
echo $this->Html->link('ログアウト', array('controller'=>'users','action'=>'logout'));
} else {
// ログインしていないとき
// ログインへのリンクをだす
echo $this->Html->link('ログイン', array('controller'=>'users','action'=>'login'));
}
ログインしている状態のとき、$user
には値が入っており、逆にログインしていないときは入っておりません。
そのため、isset
を利用します。
isset
は変数が存在しているか調べる関数です。
変数が存在するかどうかの判別(isset)
isset関数とempty関数と「!」の違い
AuthComponentを利用した、ちょっとしたリンクの出しわけでした。