【发布时间】:2012-11-28 16:58:44
【问题描述】:
我想将请求转发给控制器以执行某些特定操作,而不重定向到另一个 url。
例如,以下网址:
/home/peter
内部应该变成
/home/people/peter
我知道我可以在“init”函数中捕获操作名称(“peter”),然后执行 Controller::redirect,但我想留在同一个 url,只需将请求在内部转发到'人民'行动。
需要注意的两件事:
- 'peter' 是一个动态字符串,所以我不能为此硬编码一个路由
- 控制器的任何其他操作仍然可以工作,因此只有几个字符串应该被转发(例如,'peter'、'ann' 被转发到 'people' 操作,而 'otherAction' 仍然是可调用的)
我已经在 Controller 类中找到了“handleAction”和“handleRequest”方法,但无法想象如何将它们用于我的任务。
SilverStripe 版本:3.0.3
【问题讨论】:
标签: silverstripe