Zend Framework和嵌套集

时间:2011-11-29 14:55:35

标签: php nested-sets zend-framework

我们目前正在开发基于Zend Framework的ShopProducts Feedmanager。 在此Feedmanager中,您可以管理多个Feed,以便创建并发送到不同的位置。 每个Feed都有n个字段,这些字段在当前版本中仅在一个级别中。 现在我们想把它改成多级版本,我们有父域和子域。

我们不想重新发明轮子,因此我们希望使用已开发的课程或助手。

我找到了F. Pietka的班级。 https://github.com/fpietka/Zend-Nested-Set 我试图在我们的系统中使用这个助手,但没有成功。

我写了以下一行,使用该类:

$oNested = new NestedSet_Model();

我收到以下错误消息:

  

致命错误:调用未定义的方法NestedSet_Model :: getDbTable()in   d:\ XAMPP \ htdocs中\ feedmanager_alpha \程序\类\ NestedSet.class.php   第75行

在Peitka的NestedSet助手的自述文件中,它说ZendLibrary需要在include路径中。

我想我是用以下几行做到的:

define("ROOTPATH", realpath("../"));
define("LIBPATH", ROOTPATH . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR);

// Ensure library/ is on include_path
set_include_path(
    implode(PATH_SEPARATOR,
        array(
            realpath(LIBPATH)
        )
    )
);

我是否正确设置了包含路径? 在我的情况下会出现什么问题? 嵌套集是创建父子模型的最佳方法吗?

3 个答案:

答案 0 :(得分:1)

我强烈建议你不要使用这个课程,因为它显然是一个WIP。但是,如果要绕过此错误,可以删除__construct()方法并手动调用setDb()和setTableName()。

示例:

$model = new NestedSet_Model();
$model->setDb(Zend_Db_Table::getDefaultAdapter());
$model->setTableName('table_name');

答案 1 :(得分:0)

class NestedSet extends Zend_Db_Table
{
    protected $_name = 't_nested_set_mkb_10';

    public function set(){
        $model = new NestedSet_Model();
        $model->setDb(Zend_Db_Table::getDefaultAdapter());
        $model->setTableName('t_nested_set_mkb_10');
    }
}

答案 2 :(得分:0)

它早就应该了,但我更新了https://github.com/fpietka/Zend-Nested-Set(即使是单元测试)。

随意创建问题!