在find()cakephp中排序

时间:2014-12-02 06:15:39

标签: cakephp

表单位(id,unitNo,summary)。

id | unitNo
1 | 23个
2 | 25个
3 | 22个

在UnitsController中:

public function index() {
    $this->set('units', $this->Unit->find('all'), array(
        'order' => array('Unit.unitNo ASC'),
        'fields' => array('Unit.id', 'Unit.unitNo'))
    );
}

index.ctp

<table>
    <tr>
        <th>Unit</th>
        <th>Summary</th>
    </tr>
    <!-- Here is where we loop through our $posts array, printing out post info -->
    <?php foreach ($units as $unit): ?>
        <tr>
            <td>
                <?php echo $this->Html->link($unit['Unit']['unitNo'], array('controller' => 'units', 'action' => 'view', $unit['Unit']['id']));
                ?>
            </td>
            <td><?php echo $unit['Unit']['summary']; ?></td>
        </tr>
    <?php endforeach; ?>
    <?php unset($unit); ?>
</table>

我想使用order unit,但结果仍然按id排序。 http://s1104.photobucket.com/user/thai92hp/media/Untitled.png.html

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

请试一试:

public function index() {
    $this->set('units', $this->Unit->find('all', 
        array(
            'order' => array('Unit.unitNo ASC'),
            'fields' => array('Unit.id', 'Unit.unitNo')
        )
    ));
}

在我看来,您已将订单设置作为第三个参数提供给$this->set(),但您可能要做的是将其作为第二个参数提供给$this->Unit->find()