[英]Symfony dynamic database credentials
是否可以在应用程序启动时输入以在 Symfony 中设置数据库用户/密码(如 phpMyAdmin)?
我希望我的应用程序这样做:
是否可以使用 Symfony 5 来做到这一点?
这是我的 controller 动作:
public function database_login(Request $request, Connection $connection): Response
{
if ($request->isMethod('POST') && $request->request->has('dbpass')) {
$dbpass = $request->request->get('dbpass');
$params = $connection->getParams();
$params['password'] = $dbpass;
$connection->__construct($params, $connection->getDriver(), $connection->getConfiguration(), $connection->getEventManager());
$connection->connect();
return $this->redirectToRoute('app_index');
}
return new Response(
'<form method="post">
<input type="password" name="dbpass">
<button type="submit">OK</button>
</form>'
);
}
新的连接工作正常,但在redirecToRoute()
function 后丢失。
你能帮助我吗?
@barbuslex,您可以将变量保存到 session。
$request->getSession()->set('db_login', 'login');
$request->getSession()->set('db_password', 'password');
此外,为避免在每个请求中手动传递这些参数,您可以使用 EventListener,例如: https://symfony.com/doc/current/event_dispatcher.html#request-events-checking-types
但是,也许您需要另一个更早触发的事件。 或者玩弄听众的“优先级”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.