我在symfony2的控制台上遇到了应变行为。我有一个本地的envinroment,如果我执行:
php app/console --env=dev doctrine:fixtures:load
清除数据库 加载Application \ Sonata \ UserBundle \ DataFixtures \ ORM \ LoadUserData 加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadAdvertisementData 加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadArticleData 加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadLiveBlogData 加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadVideoData
我将代码上传到Heroku(相同的代码)并执行相同的命令,但我只执行了两个第一个灯具:
清除数据库
加载Application \ Sonata \ UserBundle \ DataFixtures \ ORM \ LoadUserData 加载ApplicationNewsBundle \ DataFixtures \ ORM \ LoadAdvertisementData
此时,我认为这与配置有关,我也在开发环境中执行了命令,但结果相同。
$args
我正在使用symfony 2.6.9。
答案 0 :(得分:0)
有两个明显的原因导致您遇到此行为:
错误的文件权限
检查所有夹具文件是否可被调用的用户读取 PHP进程,否则可能无法找到它们,因此无法加载。
过时的作曲家Autoloader
如果您使用-a
/ --classmap-authoritative
或--apcu
转储了优化的自动加载器,并且之后使用新的fixture类部署了新版本......新类可能不是在类图中尚未自动加载。要解决此问题,只需运行composer dump-autoload -a
。
答案 1 :(得分:0)
问题与路径有关,文件夹的名称是DataFIxtures,我用大写字母,似乎在本地工作与vagrant不是问题但是当我使用heroku容器时不理解这条路径而且它不执行命令。更改名称问题已解决。