CakePHP:按顺序获取相关记录?

时间:2012-09-08 21:10:13

标签: cakephp cakephp-2.0 cakephp-appmodel

我有两个模型:EventMatch。一个事件可以有很多匹配。我的Match模型有$order = array('match_order' => 'asc')。我的match_order数据库表中的matches列只是一个简单的INT列,用于订购匹配项。

我有一个更新匹配顺序的控制器方法。但是,因为我通过事件获取匹配项,所以它们似乎不是按match_order升序,而是按id列升序。这是一个示例调用:

<?php
class EventsController extends AppController {
    public function view($id) {
        $event = $this->Event->find('first', array(
            'conditions' => array(
                'Event.id' => $id
            ),
            'contain' => array('Match')
        ));
    }
}

所有相关的匹配都按预期返回,但不是正确的顺序。我已经清除了我的模型缓存,还有什么我需要做的才能通过Match模型中的值来获得匹配顺序吗?

1 个答案:

答案 0 :(得分:0)

解决了它。忘了我可以在我的模型关联中指定order,所以我已将以下内容添加到我的Event模型中:

<?php
class Event extends AppModel {
    public $hasMany = array(
        'Match' => array(
            'order' => array(
                'match_order' => 'asc'
            )
        )
    );
}