2013-01-16 31 views
0

我有一個模型叫學生這

$hasMany = array('PupilAction', 'TransientAction', 'TriageEvent') 

$belongsTo = array('FormClass') 
在我PupilsController

我已經烤

$this->set('pupil', $this->Pupil->read(null, $id)); 

我想通過名爲date的每個表中的字段來命令生成的相關數據,特別是$ hasMany = array('PupilAction','TransientAction','TriageEvent')元素。我也想包括所有信息,我不想限制任何字段被返回,只是爲了讓這三個表按日期排序。

我找不到一個很好的例子,說明如何使用read() - 大多數人似乎都使用find,但我想弄清楚這個read。

任何人都可以好好開導我嗎?

+0

時下找到()通常優於閱讀()。查找可以更好地調整,使用contains()並且不會混淆模型對象數據。 – mark

回答

2

如果您始終需要按日期排序的數據,那麼在每個模型的PHP文件中添加$ order variable

public $ order ='date';

公共$順序= 'PupilAction.date ASC';

這將確保這些模型返回關聯,分頁和默認查找的有序結果。

否則,您可以使用訂單鍵進行可容納的行爲。確保你的Containable行爲添加到$ ACTAS每個模型(或您的AppModel.php)

$record = $this->Pupil->find('first',array(
    'conditions'=>array('Pupil.id'=>$id), 
    'contain'=>array('PupilAction'=>array('order'=>'PupilAction.date')) 
)); 
+1

謝謝你的迴應。 –

相關問題