2011-06-28 54 views
1

爲了簡單起見,我有兩個表:項目和任務。一個項目可以有很多任務,一個任務屬於一個項目。 我已經建立了數據庫,創建了關聯並使用了蛋糕烘烤來生成模型,控制器和視圖,並且都是完美的。 當我查看項目的索引視圖時,我看到一個按預期列出所有項目的表格。我想要做的事情非常簡單:我需要該表中的一列顯示分配給該項目的所有任務的計數。將自定義查詢添加到模型

這個SQL查詢是微不足道的(返回項目名稱列表和任務計數):

SELECT projects.name, 
(SELECT COUNT(*) FROM tasks WHERE project_id = projects.id) as taskCount 
FROM projects 

那麼,如何在CakePHP中實現這一目標? 在項目控制器索引方法看起來像這樣的時刻:

function index() { 
    $this->Project->recursive = 0; 
    $this->set('projects', $this->paginate()); 
} 

回答

1

可以使用virtualFieldscounterCache,卻是另一種方式。

+0

將此項添加到項目模型中: var $ virtualFields = array('taskcount'=>'SELECT COUNT(*)FROM tasks WHERE project_id = Project.id'); 和一切都很好! – Ben

相關問題