当前位置: 首页 > 知识库问答 >
问题:

Symfony2:login_check和注释

巩俊远
2023-03-14

在我的Symfony项目中,我想使用真伪鉴别。所以我在security.yml档案里写了这个

 firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        default:
            anonymous: ~

        login_firewall:
          pattern:    ^/login$
          anonymous:  ~

        secured_area:
            pattern:    ^/
            anonymous: ~
            form_login:
                login_path:  /login
                check_path:  /login_check
                post_only: true
                always_use_default_target_path: true
                default_target_path:      /
                use_referer:          false
                username_parameter:       username
                password_parameter:       password
                intention:            authenticate
            logout:
                path:  /logout
                target: /

好的,现在文档中说我需要在routing.yml中添加以下内容:

login:
    pattern:   /login
    defaults:  { _controller: AcmeSecurityBundle:Security:login }
login_check:
    pattern:   /login_check

但我使用的是注释,所以我不使用路由文件。相反,我有:


    /**
     * @Route("/login")
     * @Template()
     */
    public function loginAction()
    {
        $request = $this->getRequest();
        $session = $request->getSession();

        // get the login error if there is one
        if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
          $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
        } else {
          $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
          $session->remove(SecurityContext::AUTHENTICATION_ERROR);
        }

        return array(
          // last username entered by the user
          'last_username' => $session->get(SecurityContext::LAST_USERNAME),
          'error'     => $error,
        );
    }

如果我什么也不做,我的登录页面会出错:

 "Unable to generate a URL for the named route "login_check" as such route does not exist." 

如果我在控制器中添加一个响应为空的操作,则。。。没有什么

我做错了什么?

共有1个答案

方斌
2023-03-14

login_check或您指定的任何内容都是系统定义的路由,而不是操作。这意味着你不能/不应该/不会在控制器中手动定义它。;)

我自己使用annotations进行路由,但无论如何,您将使用routing.yml从控制器内部导入控制器,从而导入带注释的路由。

所以,继续,只需在routing.yml中定义该路由,它就会起作用。

 类似资料:
  • 当我执行时,我的服务按预期列出,但当我从web或通过功能测试访问我的包时,我得到: 未捕获的PHP异常Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:“您请求了一个不存在的服务”xx。处理程序”在xx/app/bootstrap。php。缓存行2031{“异常”:“[对象](Symfony\Compo

  • 我试图在Symfony2中创建一个表单,其中包含一个文本输入字段,该字段接受一个由6位数字组成的字符串,后跟一个破折号,后跟四位数字(例如123456-7890)。它确实可以工作,但我得到的HTML标记不一致,具体取决于我如何将字段添加到表单中。 这来自实体: 从表单定义中: 从树枝模板: 这就是浏览器源代码的样子——注意模式和maxlong属性: 我想使用我自己的标签,而不是默认的,所以我改变表

  • Symfony2有问题$excelService=$this- 显示的问题是 知道怎么解决这个问题吗? 顺便说一下,这是我的composer.json 但是我不能安装phpoffice/phpexcel,这是我最后一次尝试... 修改于25/06/2014 在Splendonia的帮助下,我能够以正确的方式安装/更新我的luiggioBundle,并意识到现在它有了一个新的应用编程接口。然后我运行

  • 我试图在Symfony2上安装FOSUserBundle。 尝试在终端中运行此命令时 作曲家更新朋友软件交响乐/用户包 我提出了这个错误: 用包信息加载作曲家存储库更新依赖项(包括要求开发)您的需求无法解析为一组可安装的包。 问题1-symfony/icu v1.2.0需要lib-icu 我读到了关于INTL扩展没有安装正确,所以我按照这些说明,重新启动MAMP,问题仍然存在! 我也使用phpin

  • 我在Wamp上使用symfony2,它连接在SQL服务器DB上。 当我开始与项目 一切都很好,速度很慢,但我的网站在127.0上还可以。0.1:8000,Doctrine2连接到sql server数据库时没有问题。 我的问题:当我localhost/MyProject/web/app_php.php(意味着我使用wamp而不是server: run)。Symfony抛出一个异常: PDOExc0