允许查询参数在值中带有一个点

时间:2018-02-02 11:49:44

标签: routing symfony4

我有以下路线:

misc_email_availability:
    path: /email-availability/{email}
    defaults: { _controller: App\Controller\Misc\EmailAvailabilityAction }
    methods: [GET]
    requirements:
        email: .+

但是当我点击/email-availability/my-mail@domain.com时,symfony返回404,因为值中的.,可能会将其解析为格式,尽管事实上我覆盖了需求中的模式(这里解释为允许/中的{{1}}:

有没有办法让这项工作?

1 个答案:

答案 0 :(得分:0)

您的代码在我的本地服务器(symfony 4.0.4)上给出了错误500,直到我在控制器名称后添加您要调用的方法名称( :: methodName ):

misc_email_availability:
    path: /email-availability/{email}
    defaults: { _controller: App\Controller\Misc\EmailAvailabilityAction::methodName }
    methods: [GET]
    requirements:
        email: .+

这是我的配置:

<强>配置/ routes.yaml

email:
    path: /check-email/{email}
    methods: [GET]
    defaults: { _controller: App\Controller\Admin\HomeController::email }
    requirements: 
        email: .+

<强> SRC /控制器/管理/ HomeController.php

namespace App\Controller\Admin;
[...]
class HomeController extends Controller
{
    public function email($email)
    {
        var_dump($email);
        die();
    }
}

通话结果:http://server.local/check-email/test@example.com

string(16) "test@example.com"

希望有所帮助