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