PHP-Symfony 3.2.1从yml文件值中删除下划线
作者:互联网
我尝试使用composer从Symfony 3.1.8升级到3.2.1.在清除缓存期间,我收到一条错误消息,指出
An exception occured in driver: SQLSTATE[HY000] [1045] Access denied
for user ‘########’@’IpAddress’ (using password: YES)
但是我的数据库用户名应该是####### _#,请注意倒数第二个字符的位置.查看parameter.yml文件,我发现我的database_user已更改为从用户名中删除_(下划线被删除).然后,我加了下划线,删除了开发缓存,然后再次尝试了该应用程序.我收到了与以前相同的错误.
由于composer也同时更新了学说和FOSuser捆绑软件,因此我还原了更新并通过还原composer.lock文件返回到之前的配置.然后,我再次在3.1.8版本中运行我的Symfony应用程序,它运行良好.
为了进一步解决问题,我使用了作曲家,仅将symfony从3.1.8升级到3.2.1.升级在清除上面的错误消息时在缓存中产生了错误,并且在我的parameters.yml文件中,我的database_user再次从用户名中删除了下划线.我重新插入了下划线,但是我仍然收到错误消息:
An exception occured in driver: SQLSTATE[HY000] [1045] Access denied
for user ‘########’@’IpAddress’ (using password: YES)
如果我在database_user的末尾添加一个字母,所以它是“ ######## _#a”,则错误消息显示_
An exception occured in driver: SQLSTATE[HY000] [1045] Access denied
for user ‘#######_#a’@’IpAddress’ (using password: YES)
如果我随后删除字母,则错误消息将恢复为无下划线
An exception occured in driver: SQLSTATE[HY000] [1045] Access denied
for user ‘########’@’IpAddress’ (using password: YES)
这使我相信,在3.1.8和3.2.1之间,Symfony中的一些更改都来自parameters.yml文件中的database_user下划线.不幸的是,我不够熟练,无法弄清楚该代码可能在哪里.
解决方法:
在github的帮助下,经过一番阅读,我发现这与Symfony 3.1(Blog Post)中处理数字值的方式有关.现在,它们会自动从yml文件中的所有数字值中删除下划线字符.
但是,就我而言,我的用户名(由我的网络托管公司提供)是所有数字,倒数第二个字符带有下划线,应将其解析为字符串.现在,Symfony将其解释为数字(符合YAML规范),并删除了下划线.
为了解决这个问题,我只是在yml文件中的用户名周围加上了引号,Symfony开始正确处理该值,并且我能够运行我的应用程序.
标签:symfony,symfony-3-1,php 来源: https://codeday.me/bug/20191026/1936126.html