Я не уверен, что это "самый правильный" способ связать класс с самим собой, но, похоже, он мне подходит.
Сначала я изменил parent_page_id в таблице, чтобы он был просто page_id иЯ собрал класс, используя следующий класс:
class Page extends ActiveRecord\Model {
static $has_many = array(
array('pages')
);
static $belongs_to = array(array('page', 'class_name' => 'Page'));
public static function get_top_level_pages() {
return Page::all(array('conditions' => 'page_id = 0'));
}
public function get_parent() {
return $this->page;
}
public function get_children() {
return $this->pages;
}
}
Я создал функции get_parent () и get_children (), потому что -> page и -> pages не имеют смысла для меня, и функции помогаютясно, что до.
Я открыт для лучшего или "более правильного" решения.
JP