未知的解析器类“PropelArrayParser”

时间:2014-11-27 17:09:38

标签: php propel

我是Propel的新手,我需要使用已经安装了Propel(1.6.9)的网站。 我在我的笔记本电脑上工作,没有任何错误。 (耶!)

生成类(在相同的schema.xml和之前的其他相关文件上)之后似乎存在一些差异。 (发现文件大小)当我将这些文件上传到旧文件做得很好的网络托管时,我遇到了一个错误:

Fatal error: Uncaught exception 'PropelException' with message 'Unknown parser class "PropelArrayParser"' in /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/vendor/propel/propel1/runtime/lib/parser/PropelParser.php:101 

Stack trace: 
#0 /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/vendor/propel/propel1/runtime/lib/om/BaseObject.php(375): PropelParser::getParser('Array') 
#1 /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/vendor/propel/propel1/runtime/lib/om/BaseObject.php(424): BaseObject->exportTo('Array', 'fieldName') 
#2 /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/src/controllers/UsersController.php(26): BaseObject->__call('toArray', Array) 
#3 /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/src/controllers/UsersController.php(26): User->toArray('fieldName') 
#4 /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/framework/framework.php(196): require('/var/www/vhosts...') 
#5 /var/www/vhosts/10/154462/web in /var/www/vhosts/10/154462/webspace/httpdocs/DOMAIN/vendor/propel/propel1/runtime/lib/parser/PropelParser.php on line 101

错误是指:

$case = new AgencyCosts();
$case->fromArray($_POST, BasePeer::TYPE_FIELDNAME);
$case->save();

所以我认为包含有问题。这就是我将以下内容添加到init.php中的原因:

  

set_include_path(dirname( DIR )。'/ vendor / propel / propel1 / runtime / lib / parser'.PATH_SEPARATOR.get_include_path());

     

需要dirname( DIR )。 '/vendor/propel/propel1/runtime/lib/parser/PropelJSONParser.php';

没有任何成功。

init.php(包含完成的地方)可用here。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

当Propel无法找到类定义时,您将收到此异常。来自Propel的代码:

// PropelParse::getParser
if (!class_exists($class)) {
    throw new PropelException(sprintf('Unknown parser class "%s"', $class));
}

Propel生成一个类图文件,其中编写了所有Propel类的路径。看起来你只是包含错误的文件或错误的路径。查看classmap密钥的配置文件:

$conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-<you-project-name>-conf.php');

然后检查该文件的内容。这可能是因为您盲目地将文件从计算机移动到服务器。