2012-04-24 65 views
0

我有下面這段代碼:CakePHP的權威性和用戶寄存器停止工作

public function check() 
     { 
      $result = $this->User->field('id', array('username' => '[email protected]')); 
      debug($result); 
     } 

在我的用戶表我都有記錄:

NSERT INTO `users` (`id`, `username`, `password`, `role`, `created`, `modified`) VALUES 
('5', '[email protected]', '64c918dd65b67b455248c2498bcc5421a66b68a6', 'member', '2012-04-24 10:56:37', '2012-04-24 10:56:37'); 

這種控制器的方法檢查的結果是:

false 

和SQL查詢:

Nr Query Error Affected Num. rows Took (ms) 
1 SELECT `User`.`id` FROM `freebooks`.`users` AS `User` WHERE `username` = '[email protected]' LIMIT 1  1 1 0 

所以SQL返回一行但在蛋糕結果是'假' - 最新錯誤?破了什麼?

,當我在我的phpMyAdmin的執行這條SQL語句是正確返回ID = 5

當我改變一個行

$result = $this->User->find('all'); 

此打印

true 

這是不可能的! !

回答

1
$this->User->field('id', array('username', $this->request->data['User']['username'])); 

您可以檢查這樣的:

if(!empty($this->User->field('id', array('username', $this->request->data['User']['username']));)) { 

    // code 
} 

OR

$id = $this->User->field('id', array('username', $this->request->data['User']['username'])); 

$this->User->id = $id; 

if($this->User->exists()) { 
    // code 
} 
+0

它是什麼,它是如何工作的???當我執行我的代碼時,我甚至可以看到這個findByUser發現1行的蛋糕sql信息!這怎麼可能? – user606521 2012-04-24 11:00:21

+0

@ user606521閱讀http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-field – thecodeparadox 2012-04-24 11:02:55

+0

它不工作 - 它仍然返回'false'!這很奇怪 - 我可以看到MySQL查詢(由蛋糕提供):1 \t SELECT'User'.'id' FROM'freebooks'.'users' AS'User' WHERE'username' ='[email protected]' LIMIT 1 - num rows = 1這意味着它發現了這條記錄 - 但它返回false ... – user606521 2012-04-24 11:14:29