1

多くのhasMany/hasOne関係を持つモデルを設定しようとしています。所有モデルをアルファベット順に表示するには、「追加」ビュー内のドロップダウンメニューを使用してください。再帰的に検索されるモデルにORER BY命令をどのように提供するかはわかりません。これは私が試したことです:Cakephp 2.0:find()を使って再帰的に取り出されたデータのORDER BY命令を提供するには?

$services = $this->service->find('all', array(
             'order'=>array(
               'Service.start_year DESC', 
               'Servicecat.title DESC' 
               ), 
             'recursive'=>0 
             )); 

もちろん、これは変更されません。私はそれが非常に複雑ではない疑いがある、私はちょうどcookbook/apiで解決策を見つけることができません。アイデア?

答えて

5

これはいくつかの方法で行うことができます。私はモデルに包含された動作を使用することを好みます。そして、モデルを取り出す方法を細かく制御することができます。また、モデルの関係定義で順序を設定することもできます。あなたのコントローラから見つけたときに、その後

public $actsAs = array('Containable'); 

モデルウェイ

$hasMany = array(
    'Servicecat' => array(
     'order' => array(
      'Servicecat.title DESC' 
     ) 
    ) 
); 

収容可能ウェイあなたのモデルで

は、収容可能振る舞いを使用するように設定しますどのモデルがリンクされているかを明示することができます。多次元配列を使用して、再帰の深さを判断できます。

$services = $this->Service->find(
    'all', 
    array(
     'contains' => array(
      'Servicecat' => array(
       'order' => array('Servicecat.title' => 'DESC') 
      ) 
     ), 
     'order' => array('Services.start_year' => 'DESC') 
    ) 
); 
+0

ブリリアント。完璧。ありがとうございました。 – Jonline

関連する問題