3

私は CakePHP 3 (3.0.13) で非常に単純なアプリを書いています。単純でより良いことができるかどうか知りたいです。

私は基本的に、問題と仕事を把握するために問題トラッカーを書いています。低、中、高など、各レベルの一意の ID と名前を含む優先度というテーブルがあります。私の問題は、これらを表示したい順序でデータベースに追加しましたが、アルファベット順に表示されているため、高、低、中です。

課題コントローラーの追加機能 (たとえば) では、次のように変更できます。

$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 に答える