Browse Source

Merge pull request #9837 from cakephp/tree-list

Alias order field in findTreeList().
Mark Story 9 years ago
parent
commit
f8ea642429

+ 3 - 1
src/ORM/Behavior/TreeBehavior.php

@@ -483,10 +483,12 @@ class TreeBehavior extends Behavior
      */
     public function findTreeList(Query $query, array $options)
     {
+        $left = $this->_table->aliasField($this->config('left'));
+
         $results = $this->_scope($query)
             ->find('threaded', [
                 'parentField' => $this->config('parent'),
-                'order' => [$this->config('left') => 'ASC'],
+                'order' => [$left => 'ASC'],
             ]);
 
         return $this->formatTreeList($results, $options);

+ 9 - 1
tests/TestCase/ORM/Behavior/TreeBehaviorTest.php

@@ -256,7 +256,15 @@ class TreeBehaviorTest extends TestCase
     {
         $table = TableRegistry::get('MenuLinkTrees');
         $table->addBehavior('Tree', ['scope' => ['menu' => 'main-menu']]);
-        $result = $table->find('treeList')->toArray();
+        $query = $table->find('treeList');
+
+        $result = null;
+        $query->clause('order')->iterateParts(function ($dir, $field) use (&$result) {
+            $result = $field;
+        });
+        $this->assertEquals('MenuLinkTrees.lft', $result);
+
+        $result = $query->toArray();
         $expected = [
             1 => 'Link 1',
             2 => '_Link 2',