2015-11-09 5 views
0

Я пытаюсь сделать навигацию. У меня есть трилист для продуктов.Данные о перечнях данных для навигации

Products 
-product A 
--product A.1 
--product A.2 
    ---product A.2.1 
-product B 
--product B.1 

Как я могу показать в своей навигации только родителя. Например,

Products 
-product A 
-product B 

Я использую cakephp 3.0. Я делаю это treelist на основе учебного блога. Может ли кто-нибудь мне помочь?

Это мой контроллер.

public function index() 
    { 
     $products = $this->Products->find() 
      ->order(['lft' => 'ASC']); 
     $this->set(compact('products')); 
     $this->set('_serialize', ['products']); 
    } 
+0

объяснить: вы liwant фильтровать 'найти (» treeList ') 'вызов показывает только первый уровень? Затем добавьте '-> где (['parent_id' => $ root_id]), а $ root_id - это идентификатор корня вашего дерева. – arilia

ответ

0

Предположим, у вас нет корневого узла в вашем дереве.

Я понимаю, что вы хотите получить все и только узлы, которые находятся на уровне firt. В этом случае вы ищете узлы, которые имеют значение NULL parent_id

$products = $this->Products->find('treeList') 
    ->where(['parent_id IS NULL']); 

вместо этого, если у вас есть корневой узел, идентификатор т.е. 1

$root_id = 1; 
$products = $this->Products->find('treeList') 
    ->where(['parent_id' => $root_id ]); 
+0

У меня внутренняя ошибка. Я хочу, чтобы мой parent_id был нулевым. – clover1234

+0

, пожалуйста, сообщите об ошибке – arilia

+0

Ошибка: произошла внутренняя ошибка. – clover1234