我已在http://picqer.com/blog/propel-with-laravel的帮助下将Propel配置为与Laravel合作。所有模型查询都正常工作,所有数据都正在正确获取。
但是,toJSON
和exportTo('JSON')
方法既不对象也不对某些查询返回的PropelObjectCollection不起作用。
Laravel抛出的例外是:
适用于exportTo('JSON')
和toJSON()
所有大写方法
Unknown parser class "PropelArrayParser"
对于toJson()
方法:
Unknown parser class "PropelJsonParser"
我认为问题出在Laravel自动装载的地方。我可能错过了一个帮助它找到PropelJsonParser文件的条目。
P.S。我不知道'php artisan dump-autoload'的影响是什么。但我确实按照教程运行它。
build.properties文件如下所示:
propel.project = QuranApp
propel.database = mysql
propel.mysql.tableType = InnoDB
propel.database.url = mysql:host=localhost;dbname=quransociety
propel.database.user = user
propel.database.password = password
propel.disableIdentifierQuoting = false
propel.php.dir = ${propel.project.dir}/../../models
propel.output.dir = ${propel.project.dir}/../../database/propel
propel.phpconf.dir = ${propel.project.dir}/conf
propel.schema.dir = ${propel.project.dir}
答案 0 :(得分:0)
我已经在laravel start.php中添加了这两行(在开头):
set_include_path(dirname(__DIR__) . '/vendor/propel/propel1/runtime/lib/parser' . PATH_SEPARATOR . get_include_path());
require dirname(__DIR__) . '/vendor/propel/propel1/runtime/lib/parser/PropelJSONParser.php';
所以基本上我手工包括它们,这个错误消失了。应该有其他方式,与larvel自动加载机制一起使用很好,但到目前为止我没有以不同的方式解决它