2012-08-07 92 views
1

发现很难把我的头围绕此。对于那些广泛使用Symfony管理生成器的用户,对于基于后端模块的每个模块,都有一个所有记录的编辑页面。典型地,这可以这样获得: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

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,但问题对象 - 路由类将获取所有必要的参数。