我们目前正在开发基于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)
)
)
);
我是否正确设置了包含路径? 在我的情况下会出现什么问题? 嵌套集是创建父子模型的最佳方法吗?
答案 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(即使是单元测试)。
随意创建问题!