2015-07-02 46 views
0

我有一個role字段給我真正需要訪問的用戶。如果用戶是admin,他們在我的許多觀點上會有額外的可用操作。如何強制在AuthComponent的用戶中包含一個字段?

所以,在我AppControllerbeforeRender我這樣做:

$this->set('loggedInUser', $this->Auth->user()); 

這樣一來,我可以使用$loggedInUser訪問我所有的意見,用戶登錄。

的事情是,從10個字段的表users具有的AuthComponent似乎只獲取這些4:idusernameverifiedmodified

我在我的代碼中找不到指定這4個字段爲整體的任何地方。

什麼導致AuthComponent隨機選擇那些特定字段?我如何強制我需要的領域?

的情況下,額外的信息,則需要

所有的users表的字段有:

id 
username 
email 
password 
role 
verification_hash 
email_md5 
verified 
created 
modified 

AuthComponentAppController內的初始化如下:

$this->loadComponent(
    'Auth', 
    [ 
     'authorize' => 'Controller', 
     'authError' => 'You are not allowed to go there', 
     'authenticate' => [ 
      'Form' => [ 
       'fields' => [ 
        'username' => 'username', 
        'email' => 'email', 
        'password' => 'password' 
       ] 
      ] 
     ], 
     'loginAction' => [ 
      'controller' => 'Pages', 
      'action' => 'display', 
      'home' 
     ] 
    ] 
); 
+0

這是不正確的,默認情況下,AuthComponent將獲取所有字段。另外,在你的配置的'fields'鍵中'email'鍵不是必需的。 –

+0

@JoséLorenzo,謝謝,你知道是什麼原因導致AuthComponent只提取那些特定的字段嗎? – hakermania

+0

您的實體中是否有'$ _hiddenFields'中的任何內容? –

回答

0

問題出在我實體中的可訪問字段。我在那裏留下了一些我忘記刪除的不存在的領域。

出於某種原因,似乎AuthComponent不喜歡那些不存在的字段,它只提取4個字段。

從可訪問字段中刪除不存在的字段似乎可以解決問題。

相關問題