n44*_*44s 6 escaping symfony symfony4 dotenv
我使用带有特殊字符的密码,symfony 返回错误“参数格式错误”。
我怎样才能使用这种密码? foo?bar
我尝试使用这样的变量
DATABASE_USER='foo'
DATABASE_PASSWORD='foo?bar'
DATABASE_URL=mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@100.100.100.100:3306/db
Run Code Online (Sandbox Code Playgroud)
但不工作
Ani*_*pta 11
urlencode()
通过或在线使用 urlencoded 密码:
(例如:ZZ?*?daWm => ZZ%3F%2A%3FdaWm
完整的数据库 url 参数应为:
DATABASE_URL=mysql://test_user:ZZ%3F%2A%3FdaWm@127.0.0.1:3306/test_db
Run Code Online (Sandbox Code Playgroud)
然后去./app/config/packages/doctrine.yaml
我有带有解析前缀的 url 参数:
doctrine:
dbal:
# (....)
url: '%env(resolve:DATABASE_URL)%'
Run Code Online (Sandbox Code Playgroud)
只需删除前缀“resolve”即可解决问题,更改后:
doctrine:
dbal:
# (....)
url: '%env(DATABASE_URL)%'
Run Code Online (Sandbox Code Playgroud)
正如变量名称所暗示的那样,DATABASE_URL
必须是一个 URL。也就是说,所有在 URL 中有意义的字符(例如#
, ?
, :
, ...)都必须进行 URL 编码。
例如?
,必须编码为%3F
好像它应该以与标记查询不同的含义出现。网上有很多工具可以对 URL 进行编码……
归档时间: |
|
查看次数: |
4147 次 |
最近记录: |