Php Symfony Flex:覆盖FOSUser登录表单
我了解了覆盖FOSUser登录表单的两种方法: 将模板文件放入应用程序/资源/ 重写子捆绑包中的控制器 然而,随着项目结构发生了重大变化 至于选项1:不再有app/Resources文件夹。我将模板存储在/templates中 关于选项2:不再有AppBundle 现在,我扩展了FOSUser的安全控制器:Php Symfony Flex:覆盖FOSUser登录表单,php,symfony,symfony-flex,Php,Symfony,Symfony Flex,我了解了覆盖FOSUser登录表单的两种方法: 将模板文件放入应用程序/资源/ 重写子捆绑包中的控制器 然而,随着项目结构发生了重大变化 至于选项1:不再有app/Resources文件夹。我将模板存储在/templates中 关于选项2:不再有AppBundle 现在,我扩展了FOSUser的安全控制器: <?php namespace App\Controller; use FOS\UserBundle\Controller\SecurityController as BaseCo
<?php
namespace App\Controller;
use FOS\UserBundle\Controller\SecurityController as BaseController;
class SecurityController extends BaseController
{
public function renderLogin(array $data)
{
return $this->render('/Admin/Login/index.html', $data);
}
}
应用程序仍然呈现FOSUserBundle表单。我有一种感觉,我必须以某种方式注册avobe控制器。在FOSUser配置中,没有用于此的指令。如何实现这一点?我认为您遵循了正确的路径,但忘记了更改配置。您需要告诉fosuser使用不同的表单文件 检查,第106行和第109行:
我没有用flex检查这个解决方案,但我的一个朋友用symfony 4检查了,效果很好。在symfony 4中,您只需将文件放入/templates/bundles/FosUserBundle即可
希望有帮助。我认为您还应该覆盖默认的/login路由,尝试使用path/login将新路由指向控制器上的renderLogin方法。是否清除缓存并将方法更改为protected。