0

发现几个链接建议使用“ORM_Tree”来处理自引用表:

但是,从控制器收到一个错误,提示“找不到类 ORM_Tree”。我的模型如下:

class Model_Article extends ORM_Tree {
    protected $children = "categories";
}

我在控制器中使用 3.3.1 版本,其中包含以下内容:

class Controller_Category extends Controller{

    //View
    public function action_index(){
        $categories = ORM::factory('Category')->find_all();
        $view = new View('category/index');
        $view->set('category', $categories);
        $this->response->body($view);
    }
}

该类是否从版本 3.3.1 中删除?如果是这样,是否有人对处理自引用表有建议,如下所示:

category_id - int(11) - 否
category_name - varchar(45) - 否
category_description - varchar(250) - 是 - NULL
__parent_id - int(11) - 是 - NULL

希望我能清楚地理解这张表。__parent_id 与 category_id 具有外键关系。__parent_id 可以为空(允许一个根或什至几个顶级)。

任何建议都将不胜感激,因为我非常希望在项目中利用这棵树。如果这已在其他地方得到回答,请原谅(请理解,我在“谷歌搜索”甚至“雅虎搜索”之前没有问过)。

我对 Kahona 非常陌生,因为这个框架似乎是最合适的。我检查了一些 Cakephp,但并不关心他们对 AuthAcl 的处理——似乎有点令人费解,因为你有一个带有左右节点的“树”,我觉得这不必要地复杂。但是,我还没有接触到 Kahona 的 AuthAcl,可能会发现这样的实现是必要的。

4

1 回答 1

0

不需要这样的构造,因为您可以轻松设计自引用 ORM 类。我不确定你想要什么,因为这个类被调用Model_Article但表有category_*列。

所以我假设你有一个categories包含给定列的表。现在这个模型可能看起来像这样

class Model_Category extends ORM {
    protected $_table_name = "categories",
        $_has_many = array(
            'children' => array(
                'model' => 'Category',
                'far_key' => '__parent_id'
            )
        ),
        $_has_one = array(
            'parent' => array(
                'model' => 'Category',
                'foreign_key' => '__parent_id'
            )
        );
}

这没有经过测试,但至少应该让您了解实现的想法。您始终可以在文档API 浏览器中阅读有关如何使用的内容。另外,如果您不满意,我建议您尝试使用各种设置。

如果您想知道是否使用far_keyor foreign_key这个答案应该会有所帮助。

于 2014-03-05T22:51:39.410 回答