2013-08-12 59 views
0

我有以下代碼:CakePHP的findBy返回空數組

print_r($this->request->data['User'] ['username']); 
print_r($this->User->findByRole($this->request->data['User']['username'])); 

現在,你可以看到這只是測試它,但是當我嘗試運行此我正確地獲取用戶名(第一print_r的),但第二個print_r返回一個空數組。

我知道在我的用戶數據庫中有一個名爲Role的字段,我也知道它不是空的。它應該返回員工。

那麼我做錯了什麼?

+0

你的角色發現,不是用戶名 - 因此'findByRole'。即您正在使用「用戶名」值搜索「角色」列。你想返回'角色'字段,而不是'findBy'它 – SmokeyPHP

+0

@SmokeyPHP我想找到用戶名等於$ this-> request-> data ['User'] ['username']的字段行 –

+0

@SmokeyPHP不,我想搜索用戶模型的行「角色」,其中用戶名等於我的數組在這個例子中的用戶名是MyClient –

回答

1

使用findByUsername並使用第二個參數指定fields

$this->User->findByUsername($this->request->data['User']['username'],array("User.role")); 

或標準方法:

$this->User->find("first",array(
    "fields" => array("User.role") 
    ,"conditions" => array("User.username" => $this->request->data['User']['username']) 
)); 
+0

這給了我以下錯誤:錯誤:SQLSTATE [42S22]:列不是找到:1054未知列'User'。在'字段列表'中 SQL Query:SELECT DISTINCT'User'.'','User'.'id' FROM'system_bloglic_com_test'.'users' AS' User' WHERE'User'.'username' ='MarcEmp' LIMIT 1 –

+0

@MarcRasmussen抱歉,錯誤地格式化了$ fields數組 - 請參閱更新的答案(如果需要,我還添加了更詳細的版本) – SmokeyPHP

+0

@MarcRasmussen它是否適用於更新? – SmokeyPHP