2011-06-04 31 views
6

正在考慮在今天的模型上使用神奇的findBy函數,並在嘗試爲函數設置可選參數時遇到問題。這是我試過的。

$result = $this->findById($id['Alpha.name']); 

所以要解釋一下,我試圖找到一條記錄與特定id並且只返回name字段的值。根據文件,有一種方法可以做到這一點。

的findBy神奇功能也接受一些可選參數: findBy<fieldName>(string $value[, mixed $fields[, mixed $order]]);

CakePHP 1.3 Book :: findBy

當我做一個簡單的findBy($id)我得到一個結果集。但有了參數,我什麼也得不到。我知道還有其他方法可以做到這一點,但只是好奇,如果任何人有成功使用這些神奇的功能與額外的參數?

回答

11

試試這個:

$result = $this->findById($id, array('Alpha.name')); 

其中$id是你正在尋找和Alpha.name是你需要的字段記錄的ID(如name從模型Alpha

+0

這個工作。由於問題出在語法上(即我使用了不正確的語法),所以我會給出這個答案的功勞。但是,我發現如果模型具有'hasMany'關係,那麼這些關係將被返回。這個模型有'hasOne'關係,但是沒有返回。它沒有任何'belongsTo'關係,所以我不知道這些是否會被退回。 – generalopinion 2011-06-06 21:10:01

+0

@generalopinion嘗試設置'$ this-> Alpha-> ​​recursive = 1'來獲取相關模型的模型,例如'Alpha'與'hasOne'模型'Beta'的相應數據# – zergussino 2011-06-07 08:14:07

+0

甜。我假設做'$ this-> Alpha-> ​​recursive = -1'只會返回沒有任何關係的模型? – generalopinion 2011-06-07 15:55:30