Symfony2:您请求的参数不存在 [英] Symfony2: You have requested a non-existent parameter

查看:102
本文介绍了Symfony2:您请求的参数不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经检查过类似的问题,但是它们并没有解决我的问题.

I have checked similar questions on SO, but they did not solve my issue.

我正在Openshift上部署Symfony2应用程序.它在Windows 10笔记本电脑上运行良好,但是在Openshift上出现以下错误消息:

I am deploying a Symfony2 application on Openshift. It works well on my Windows 10 laptop, but I am getting the following error message on Openshift:

Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException'
with message 'You have requested a non-existent parameter "database_path".
Did you mean one of these: "database_host", "database_port", "database_name", "database_user"?'
in /var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php:106 Stack trace: #0 
/var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php(248):
Symfony\Component\DependencyInjection\ParameterBag\ParameterBag->get('database_path') #1 [internal function]:
Symfony\Component\DependencyInjection\ParameterBag\ParameterBag->Symfony\Component\DependencyInjection\ParameterBag\{closure}(Array) #2
/var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php in
/var/lib/openshift/55eed4837628e1199f0000bb/app-root/runtime/repo/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php on line 106

我的config.yml是:

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
...

doctrine:
    dbal:
        driver:   pdo_sqlite
        charset:  UTF8
        path:     "%kernel.root_dir%/../%database_path%"
...

我的parameters.yml是:

parameters:
    database_driver: pdo_sqlite
    database_host: localhost
    database_port: null
    database_name: demo.db
    database_user: root
    database_password: null
    database_path: /data/demo.db
    ...

而我的config_prod.yml是:

imports:
    - { resource: config.yml }
...

我在做什么错了?

更新

我已将config.yml更改为:

path:     "%kernel.root_dir%/../data/demo.db"

问题消失了,但我不知道为什么!

and the issue is gone, but I don't know why!

推荐答案

这是一个常见错误.

就像我在上面评论过一样:
运行 composer 安装时,symfony将基于parameters.yml.dist(如果有)重新生成新的parameters.yml文件.
因此,始终检查symfony生成的parameters.yml(在安装后事件,作曲家)是否还可以.

Just like I have commented above:
When running composer install, symfony will regenerate a new parameters.yml file based on parameters.yml.dist (if any).
So it's a good idea always check if parameters.yml generated by symfony (on post install event, composer) is okay.

也:

每当您更新parameters.yml文件时(使用 应该在prod服务器上也很好),则必须更新文件 parameters.yml.dist.

Whenever you update the parameters.yml file (with configs that should be in the prod server also well), you must update the file parameters.yml.dist too.

因此,部署过程将轻松得多.

So the deployment process will be much less painful.

这篇关于Symfony2:您请求的参数不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆