【问题标题】:CakePHP: fetch related records in order?CakePHP:按顺序获取相关记录?
【发布时间】:2012-09-08 21:10:13
【问题描述】:

我有两个模型:EventMatch。一个事件可以有许多匹配项。我的Match 模型有$order = array('match_order' => 'asc')。我的matches 数据库表中的match_order 列只是一个简单的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 模型中的值获取匹配顺序吗?

【问题讨论】:

    标签: cakephp cakephp-2.0 cakephp-model


    【解决方案1】:

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

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

    【讨论】:

    • 您还可以在查找查询中指定顺序,只需在选项数组中添加一个“order”键即可指定所需顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多