Symfony路由;用户生成内容中的内部URI

时间:2010-11-24 12:42:27

标签: routing symfony1

我正在开发一个Symfony(1.4)项目,该项目要求用户能够将内部URI插入到用户生成内容的主体中,在TinyMCE / WMD编辑器中编写(还没有决定!)用户可以添加内部URI到网站上的另一个地方。内容将作为markdown / html存储在数据库中。

我可以简单地插入通过Symfony本身检索的当前URI,但我希望有一种方法来存储相应的模块/动作/ etc变量,这样如果路由需要更改,URI将在整个网站中保持正确

我唯一能想到的是像PHP Markdown这样的处理器,它执行文本搜索,在内容块中提取自定义标记,并用生成的路径的markdown / html代码替换它(使用Symfony的get_url()/ link_to()方法)。 [这还需要文本标记生成器等]。

Symfony有没有比这更好的方法?我可以从用户生成的输入中访问Symfony助手/ etc吗?

2 个答案:

答案 0 :(得分:1)

没有简单的方法可以做到这一点。最好的方法是:

  • 解析提交时的编辑器输入以查找所有网址。
  • 使用存储路由名称和参数的自定义语法替换URL。
  • 每当检索/显示信息时,请删除自定义语法并将其替换为生成的路径(例如,通过preg_replace回调)

或者,对于路线相对不灵活的小型站点,可以显示可用路线的下拉列表。

这两种路线都可能会引起一些麻烦。

答案 1 :(得分:0)

告诉用户他们需要使用命名路由@my_custom_url并在symfony路由文件routing.yml中定义它们