CakePHPでSession情報を取得する
CakePHPで記事を投稿するアプリケーションを作っていて Authを使ったユーザーログイン機能を実装したのですがログイン中ユーザーが記事を投稿する事が出来ておらず、 今回記事を投稿する際Sessionの情報からユーザーを判断する処理を作ったので手順書等を記載いたします。
つまりログインしているユーザーが記事を投稿するようにいたしました。 Authでログイン機能を作っている前提で進めていきます。
1.Sessionを確認する、idを取得する
まずログインしている状態でdebugkitの「Session」を確認すると[Auth][User]にユーザー情報が入っています。 記事投稿の際にこの情報をとってきて使用したいと思います。
Session情報を取得するには以下の方法があります
$this->Session->read('session_name');
ユーザーのidを取得してログイン中のユーザーを判断したいときはSessionの中の[id]を取得する必要があります。 Sessionの中身が階層構造になっていて[Auth][User][id]という階層の場合は
$user_id = $this->Session->read('Auth.User.id');
というふうに書くことでidを取得できます。
2.記事投稿の際にログイン中ユーザーのidを代入する
記事のControlerのaddで 直接idにログイン中ユーザーのidを代入していきます。
//ログイン中ユーザーのidを取得する $user_id = $this->Session->read('Auth.User.id'); //記事データのユーザーIDにログイン中ユーザーのidを代入する $this->request->data['Article']['user_id'] = $user_id;
以上でログインしているユーザーが記事を投稿できるようになりました。
以下のサイトを参考にいたしました。 CakePHPでSessionを使用する方法 « CakePHP « 技術ブログ « 株式会社プロネット | WEBシステム開発20年以上の実績
それでは