Стандартное использование
У поведения(behavior) tree очень много разных функций, но мы давайте начнем с простого примера - создайте следующую таблицу у вас а Базе Данных и заполните ее некими данными:
CREATE TABLE categories ( id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INTEGER(10) DEFAULT NULL, lft INTEGER(10) DEFAULT NULL, rght INTEGER(10) DEFAULT NULL, name VARCHAR(255) DEFAULT '', PRIMARY KEY (id) ); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(1, 'My Categories', NULL, 1, 30); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(2, 'Fun', 1, 2, 15); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(3, 'Sport', 2, 3, 8); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(4, 'Surfing', 3, 4, 5); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(5, 'Extreme knitting', 3, 6, 7); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(6, 'Friends', 2, 9, 14); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(7, 'Gerald', 6, 10, 11); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(8, 'Gwendolyn', 6, 12, 13); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(9, 'Work', 1, 16, 29); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(10, 'Reports', 9, 17, 22); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(11, 'Annual', 10, 18, 19); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(12, 'Status', 10, 20, 21); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(13, 'Trips', 9, 23, 28); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(14, 'National', 13, 24, 25); INSERT INTO `categories` (`id`, `name`, `parent_id`, `lft`, `rght`) VALUES(15, 'International', 13, 26, 27);
Чтобы убедиться что мы все сделали правильно, мы может создать тестовый метод, который выведет на экран структуру нашего дерева. Наш простой контроллер:
Простой текст<?phpclass CategoriesController extends AppController {var $name = 'Categories';function index() {$this->data = $this->Category->generatetreelist(null, null, null, ' ');debug ($this->data); die;}}?>
и не менее простое определение Модели:
Простой текст<?php// app/models/category.phpclass Category extends AppModel {var $name = 'Category';var $actsAs = array('Tree');}?>
Теперь мы можем проверить что у нас получилось вбив в броузер /categories. Вы должны увидеть что-то вроде этого:
- My Categories
- Fun
- Sport
- Surfing
- Extreme knitting
- Friends
- Gerald
- Gwendolyn
- Sport
- Work
- Reports
- Annual
- Status
- Trips
- National
- International
- Reports
- Fun


Коментарии:
Добавить коментарий