I believe you can do it this way:

for level 1:
$this->Category->findAllByParentId(0, null, 'Category.id ASC');  //
Third argument for findallby

in your model, in the 'Childnode' array, add 'order'=>'Childnode.name
ASC' (or DESC depending on what you want) to the array.

var $hasMany = array(
        'Childnode' =>
                        array(
                        'className' => 'Category',
                        'foreignKey' => 'parentid',
                        'order' => 'Childnode.name ASC'
        ),

I recommend the CakePHP cheat sheet from the CakePHP front page.


On Aug 4, 7:18 am, "Feris Thia" <[EMAIL PROTECTED]> wrote:
> Hi All,
>
> I have a cake model which has a self join as follows..
>
> ==================================
> class Category extends AppModel {
>         var $name = 'Category';
>
>         var $hasMany = array(
>         'Childnode' =>
>                         array(
>                         'className' => 'Category',
>                         'foreignKey' => 'parentid'
>         ),
> );
> ==================================
>
> Then I query the model which return parent-child data using code below
> ==========================================
> $this->Category->recursive = 1;
> $category_data = $this->Category->findAllByParentid('0');
> ==========================================
>
> My question is, how can I set different order for every level, i.e.
> `id` order for level 1 and `name` for level 1 (joined data) ?
>
> Thanks !
>
> Feris


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to