3

我正在用 CakePHP 3 (3.0.13) 编写一个非常简单的应用程序,我想知道我是否可以做一些更简单、更好的事情。

我本质上是在编写一个问题跟踪器来跟踪问题和工作。我有一个名为priorities 的表,其中包含每个级别的唯一ID 和名称,例如Low、Medium 和High。我的问题是,虽然我已按照我希望它们出现的顺序将它们添加到数据库中,但它们是按字母顺序出现的,即高、低、中。

在我的问题控制器的添加功能(例如)中,我可以更改以下内容:

$priorities = $this->Issues->Priorities->find('list');

...至:

$priorities = $this->Issues->Priorities->find('list', ['order' => 'Priorities.id ASC']);

...但我不想在任何我想使用优先级列表的地方都这样做。

我想有一种 DRY 方式来指定这个(在模型中?),它有效地设置了在其他地方使用的默认值,但如果有,我找不到它。

4

1 回答 1

3

Table::findList()您可以在您的课程中覆盖PrioritiesTable,并将您的订单条件添加到查询中,例如

public function findList(Query $query, array $options)
{
    $query = parent::findList($query, $options);
    return $query->order(['Priorities.id' => 'ASC']);
}

也可以看看

于 2015-09-10T11:37:48.127 回答