我有兩個表:分頁與協會的hasMany CakePHP的
選手和投票 參賽者的hasMany投票
我試着做一個計數(Vote.id)的投票,所以我可以將它放在 記錄集和分頁他們,但我不知道該把它放在哪裏。 我在字段數組上做了它,但它給了我總票數 ,無論他們屬於哪個參賽者。
的票參賽者記錄鏈接在一起所以我 所做的是對我的看法,我做了計數($選手[投票]),但是這不能成爲 分頁和我的客戶希望能夠進行排序參賽者由 投票。
有沒有一種方法可以讓我做這樣的事情對我的看法?:
排序(「投票」,「計數(投)」); ?>
或者我是否必須創建一個查詢,對所有選票進行計數 其中Contestant.id = Votes.contestant_id?
控制器參賽者:
function index() {
$page = 'Contestants';
$this->set('page', $page);
$this->paginate =
array(
'order' => 'id ASC',
'contain' => array(
'Vote' => array(
'fields' => array("Vote.contestant_id",'Vote.id')
)
)
$conditions ["Contestant.active"] = 1;
$this->set('contestants', $this->paginate('Contestant',
$條件)); }
奇怪,當我嘗試你的建議,這是它建立查詢。 查詢:SELECT SUM('Vote'.'id')AS Contestant__votes,'Vote'.'group','Vote'.'contestant_id' FROM'votes' AS'Vote' WHERE'Vote'.'contestant_id 'IN(1,2) – 2009-10-21 19:28:15
它顯示此錯誤:模型「投票」不與模型「投票」相關聯。這是一個錯誤?爲什麼需要將模型與自身相關聯? – 2009-10-21 20:03:36
好吧似乎CakePHP的不通過中可容納的行爲支持組,所以我做了這樣的事情: '條件'=> 「1 = 1 GROUP BY Vote.contestant_id」 並生成該SQL查詢: SELECT SUM (Vote'.'id')AS Contestant__votes,'Vote'.'contestant_id' FROM'votes' AS'Vote' WHERE 1 = 1 GROUP BY'Vote'.'contestant_id' AND'Vote'.'contestant_id' IN( 1,2) – 2009-10-21 20:53:48