【发布时间】:2017-01-26 00:51:40
【问题描述】:
我的控制器的 $url_handlers 不工作。定义的方法调用成功,但也触发了404。
编辑:为上下文添加了 $allowed_actions(感谢 wmk)。
示例代码:
class MyPage_Controller extends Page_Controller {
. . .
private static $allowed_actions = array(
'test'
);
private static $url_handlers = array(
'view/$ID/test/' => 'test'
);
. . .
注意:URL 的静态部分/test
行动:
class MyPage_Controller extends Page_Controller {
. . .
public function test() {
var_dump($this->getRequest()->param('ID'), $this->getAction());
return $this;
}
. . .
这会导致 404 模板显示在 var_dump 输出下方(使用 URL //view/2/test/):
string(1) "2" string(4) "test"
在 Silverstripe 3.5.1 中测试
【问题讨论】:
-
您的操作是否在 $allowed_actions 数组中“测试”?见docs.silverstripe.org/en/3.4/developer_guides/controllers/…
标签: php routing silverstripe