これを取得するには2ステップのプロセスのようですが、
$u = $this->Auth->user();
$uid = $u['User']['id'];
ユーザーがログインしたら、どこかに変数が設定されていませんか? (馬鹿げた質問で申し訳ありません。)
私はあなたができると思います$uid = $this->Auth->user('id');
-APIをチェックします: http://api.cakephp.org/class/auth-component#method-AuthComponentuser
CakePHPでは、セッションからユーザーIDを取得する方法がいくつかあります。いくつか例を示します。
コントローラー内のセッションユーザーIDを取得するには、次を使用します:
$uid = $this->Auth->User('user_id');
ビュー内のセッションユーザーIDを取得するには、次を使用します:(非推奨、コントローラーでこれを設定します)
$uid = $this->Session->read('Auth.User.id');
モデル内のセッションユーザーIDを取得するには、次を使用します:(非推奨ですが、解決策です)
$uid = CakeSession::read('Auth.User.id');
モデル内からセッションユーザーIDを取得するために上記をお勧めしません。コントローラーを介して渡します。次を使用します:
$this->Model->function($uid);
また、純粋なphpを介してセッションユーザーIDを取得できます。以下を使用します(Cakeを使用する場合は、慣例に従う必要があります)
$uid = $_SESSION['Auth']['User']['id'];
そして、より多くのアプローチがあります、これはほんの一部です...
これを試して:
$this->Auth->user('id')
Authクラスを使用できない場合は、セッションからユーザーの詳細を取得することもできます。
$this->Session->read('Auth.User.id')
CakePhp 2.x:
どこでも:
AuthComponent::user('id')
コントローラーの内部:
$this->Auth->user('id');
$this->Session
は非推奨です
このようなものを使う
$session = $this->request->session();
$user_id = $session->read('Auth.User.id');
これは役に立たないかもしれませんが、$this->Auth->user();
によってエラーの原因がありました。代わりにこれを使用してこの問題を解決しました。問題のルートはわかりませんが、$this->Auth->user();
を使用したのと同じアクションでモデルから関数を呼び出すときに発生しました。AuthComponent::user('id')
を使用して問題を解決しました。