在Symfony2中 - 路径占位符和相关的控制器参数具有不同的类型

时间:2015-12-17 18:40:08

标签: symfony controller routing

我的路线如下:

blog_post:
    path:  /{post_id}/{post_title}.{_format}
    defaults: { _controller: BlogBundle:Blog:post }
    requirements:
        post_id: \d+
        post_title: "[a-zA-Z0-9-]+"
        _format: 'html'

与以下网址匹配:

www.website.com/32/my-best-story.html

我不明白为什么路由占位符{post_id}(这是路由中所需的整数)和相关的控制器参数$ post_id不具有相同的类型:

class BlogController extends Controller
{
    public function postAction(Request $request, $post_id, $post_title)
    {
        $type = gettype($post_id);
        var_dump($type);
        die();
    }
}

返回

string(6) "string"

我希望它能回归:

string(7) "integer"

我哪里错了?感谢。

1 个答案:

答案 0 :(得分:1)

  

我不明白为什么路由占位符{post_id}(这是路由中所需的整数)和相关的控制器参数$ post_id不具有相同的类型

请注意,要求\d+表示digit不是integer

没有在路由占位符中输入内容的概念。