没有前缀

时间:2015-06-03 21:56:53

标签: symfony routing

在我的symfony项目中,我有:

  1. example.com/ 用户 / username =>转到用户个人资料
  2. example.com/ 博客 / theweathertoday =>转到动态页面帖子博客
  3. example.com/ whoarewe =>在routig.yml
  4. 中定义的静态页面

    我想实施:

    1. example.com/username =>转到用户个人资料
    2. example.com/theweathertoday =>转到动态页面帖子博客
    3. example.com/whoarewe =>静态页面
    4. 你能告诉我最好的方法是什么:

      • 将用户与博客文章从网站页面分开? (控制器,服务......?)
      • 如何确保用户没有使用受限制的名称注册,例如在routing.yml中定义的“whoarewe”?

      最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

routing.yml文件只是加载路由的一种方法,但有many other ways。您可能需要的一种方法是custom route loader

由于路由加载器被定义为服务,因此您可以向其中注入其他服务,例如用户名检查程序,也可以由应用程序部分重用,以验证新用户注册。

如果没有这样做,您需要将匹配^/[^/]+的所有流量路由到一种中间前端控制器,该前端控制器将采用匹配的参数并决定如何转发它。

你的问题的完整答案将是一个相当大的工作,但希望这可以让你开始朝着正确的方向。

答案 1 :(得分:-2)

将example.com/user/username更改为example.com/username我认为您只需删除 routing.yml 文件中的 / user 即可。与 / blog 相同。这些文件可以在您的资源/配置目录或app / config目录中的Bundle目录下找到。