Symfony链接到管理员表记录编辑页面

时间:2012-08-07 05:01:54

标签: symfony1 routing symfony-1.4

有点发现很难绕过这个。对于那些广泛使用Symfony管理生成器的人来说,对于基于后端模块的每个模块,都有一个所有记录的编辑页面。通常可以这样访问:

module/primarykey/edit.  (assume questions/1/edit)

这很奇怪,因为主键通常会作为URI参数传递,如:

问题/编辑/ 1。无论如何,这可能无关紧要。重要的是我如何设法为上面的URI生成link_to。我通过不属于UI的外部页面链接editSuccess页面。我使用的语法是

link_to('Edit','questions/'.$primary_key.'/edit') // (where $primary_key = 1 as in this case)

然而,自动修改为:

/backend_dev.php/questions/1/action 记下操作而非编辑

不存在此类操作,并返回404错误,指出问题/操作不存在

总结一下,如何链接到专门为记录呈现的管理页面?

1 个答案:

答案 0 :(得分:1)

url_for(以及link_to)助手处理内部网址,而不是外部网址。语法为module/action?parameters。在您的情况下,这将是question/edit?id=$primarykey(假设该操作查找id参数)。

如果您为路线命名,则可以更快地生成链接(散列表查找与线性搜索):

echo url_for("@question_edit?id=$primary_key");

如果您将路线设置为sfDoctrineRoute,它会变得更简单:

echo url_for("question_edit", $question);

注意你不需要传递id,但是问题对象 - 路由类将获取所有必要的参数。