0

我的包裹中有以下路线

/{category}

我有名称的类别

Category/Brand

如果 url 是这样的:

domain.com/Company/Brand

然后我得到关于 / 符号的错误 500。

但如果我在树枝上

company.name|url_encode()

然后我得到

Company%2F%Brand

(代码可能有误,暂时不记得了)

但尽管如此 Symfony 告诉我没有路由匹配

并给我404。

我怎么解决这个问题?

4

3 回答 3

1

您的所有类别名称都是这样的,还是只有其中一些?

如果它们都遵循此结构,则可以将路由更改为:

/{company}/{brand}

并更改相应的控制器以接受两个变量而不是一个。稍后您可以将它们连接起来或对它们做任何您需要的事情

如果只有其中一些具有这种结构,您可以尝试用创建链接的控制器中的某些字符组合替换目录分隔符,然后在控制器中为该路由反转此替换。例如,在显示链接的模板的控制器中,您可以

$nameEncoded = str_replace ('/','%%%%',$companyName);

将此变量传递给模板并使用它来生成链接,然后在接收控制器中执行:

$nameDecoded = str_replace ('%%%%','/',$companyName);
于 2012-07-30T21:18:05.167 回答
0

如果您的路由是 /{category} 并且您键入的 URL 是 domain.com/Company/Brand,则该错误是正常的。

您必须像这样在 routing.yml 中配置您的路线:

Company/{category}
于 2012-07-30T18:56:18.990 回答
0

行!

我在这里找到了解决方案。

    #PUBLICATION 网址
    ###_出版物:
        模式:/{username}/{category}/{publicationid}
        默认值:{ _controller: ###:Default:publication }
        要求:
          _方法:获取
          类别:.+
          用户名:.+
          出版物编号:\d+                               
    #CATEGORY - 应该在最后,以匹配所有其他 URL
    ###_类别:
        模式:/{类别}
        默认值:{ _controller:###:默认值:类别}
        要求:
          _方法:获取
          类别:.+


于 2012-07-31T10:57:13.477 回答