1

有点难以理解这一点。对于那些广泛使用 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)

但是,该 auto 将自身修改为:

/backend_dev.php/questions/1/action注意动作而不是编辑

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

总而言之,您如何链接到专门为记录呈现的管理页面?

4

1 回答 1

1

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

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

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

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

echo url_for("question_edit", $question);

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

于 2012-08-07T08:38:28.863 回答