2016-04-05 14 views
0

CakePHPのCakePHPでは、データベーステーブルからIDの値を取得する方法

私は私のテーブルは"users"の名前と私は

を試してみました PK(int),username(txt) name(txt)

IDを持っているテーブル

からid値を取得するために問題を抱えています

$this->users->read('users.id)

ユーザIDを取得するために、それは動作しません。

私も

$this->request->session()->read('users.id')

を試してみました私は、他のIDを持つユーザーから非表示のHTMLコードをしたいので

if($this->users->read('users.id'))==1 

のような状態を作るためにしたいです。 私もそのような何か..... read('users.username')=='admin'を使用しようとしたが、彼らは文句を言わないあなたは試しにidを取得するためにセッションを()を使用して見るように、あまりにも

を動作しますが、私のログイン機能が

ある

にいけない仕事

public function login() 
{ 
    if ($this->request->is('post')) { 
     $user = $this->Auth->identify(); 
     if ($user) { 

       $this->Auth->setUser($user); 
      return $this->redirect(['controller'=>'Accounts']); 
     } 
     $this->Flash->error('blalalalala'); 
    } 
} 

これは私の最初のプロジェクトです。私は学校にcakephpしていますので、皆さんは私を助けることができますか? :)ヒントについては、PHPの弱い イム


Thxをにまだいけない仕事。

iは、フィルタの前funcitonで私のAppControllerでこの

$id = $this->Auth->user('id'); // To get user id 
    $this->set('id', $id); 

を使用しています。

と私は例えばif($id==1) .....を使用していますが、まだ動作しません。 varダンプはnullを示します。

私が言うのを忘れたが、私は、ユーザーにあなたがコードの下などのように、あなたが必要beforeFilter方法だけで設定されたユーザ情報にAppController

$this->Auth->user('fieldName'); 

を使用することができ、コントローラ内の任意の情報を設定するにはCakePHP 3x version

+1

他の言語やフレームワークをどのように学んだのか分かりませんが、「試行錯誤」をやってみると、辛くて辛い経験でした。だから私は基本的なチュートリアルと公式ドキュメントのAuthチュートリアル(book.cakephp.org)から始めることをお勧めします。これはあなたにフレームワークの適切な紹介を与え、auth関連の問題を解決します。 – burzum

答えて

1

を持っています

$id = $this->Auth->user('id'); // To get user id 
     $this->set('id', $id); 

どのビューでも、

のような条件を適用できます。
if($id==1) 
--do this-- 

あなたがどこでも使用できるユーザIDを取得したい場合は、cakephp 3を許可しません。詳細については、X

AuthComponent::user('id') 

あなたはdoc

+1

後者の方法はもうCakePHP 3.xでは動作しないことに注意してください。質問は(CakePHP 2.xでは引数なしの 'AuthComponent :: identify()'はありません)。 – ndm

+0

あなたの有益なコメントのために@ndmありがとうございます。私は私のansを編集しました。 –

0

を見ることができますが、これらを試すことができます。

$this->Auth->user('id'); // for controller action 

OR

$this->Session->read('Auth.User.id'); // for controller and views 

OR

AuthComponent::user('id') // anywhere 
関連する問題