Свежайшие Пирожки от CakePHP по-русски

Полнейшее руководство CakePHP 1.2 на русском языке, горячие новости и полезные статьи

Изменение данных

Изменение данных настолько прозрачно, как и добавление. Если вы изменяете какие-то данные, а поле parent_id при этом не изменяется, то и структура дерева останется без изменений. Например:

Простой текст
  1. // псевдокод контроллера
  2. $this->Category->id = 5; // id записи Extreme knitting
  3. $this->Category->save(array('name' =>'Extreme fishing'));

Этот код не изменить поле parent_id - даже если parent_id передается для сохранения. Вот что измениться после выполнения нашего кода:

  • My Categories
    • Fun
      • Sport
        • Surfing
        • Extreme fishing Изменено
        • Skating
      • Friends
        • Gerald
        • Gwendolyn
    • Work
      • Reports
        • Annual
        • Status
      • Trips
        • National
        • International
  • Other People's Categories

Перемещение данных их одной ветки в другую тоже просто. Допустим мы хотим переместить запись Extreme fishing из Sport в Other People's Categories. Вот что мы пишем:

Простой текст
  1. // псевдокод контроллера
  2. $this->Category->id = 5; // id записи Extreme fishing
  3. $newParentId = $this->Category->field('id', array('name' => 'Other People\'s Categories'));
  4. $this->Category->save(array('parent_id' => $newParentId));

Как мы и ожидали структура дерева будет такая:

  • My Categories
    • Fun
      • Sport
        • Surfing
        • Skating
      • Friends
        • Gerald
        • Gwendolyn
    • Work
      • Reports
        • Annual
        • Status
      • Trips
        • National
        • International
  • Other People's Categories
    • Extreme fishing Перемещено