我有以下module.config.php:
def evalerror(preds, dtrain):
...
return 'my-error', error
我正在尝试使用以下路线,但无效:
如果我使用以下路线,则可以:
如果我使用带有/的上一条路线,则无效:
如果您需要更多信息,请告诉我。 谢谢。
答案 0 :(得分:1)
您在路由声明中使用双斜杠:@Binding
后跟/landingpage/
匹配路由。如果删除此双斜杠,则该路由将按预期工作。
/:action/:id
此外,建议您修改路由声明以使ID可选:
'route' => '/landingpage[/:action/:id]',
经过测试: 配置
'route' => '/landingpage[/:action[/:id]]',
'constraints' => [
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z0-9_-]+'
]
IndexController:
'landingpage' => [
'type' => Segment::class,
'options' => [
'route' => '/landingpage[/:action[/:id]]',
'constraints' => [
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[a-zA-Z0-9_-]*'
],
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index'
]
],
'may_terminate' => true,
],
呼叫 /着陆页
public function indexAction () {
print '<pre>' . print_r($this->params()->fromRoute(), true);
die();
}
public function showAction(){
print '<pre>' . print_r($this->params()->fromRoute(), true);
die();
}
呼叫 /着陆页/显示
Array
(
[controller] => Application\Controller\IndexController
[action] => index
)
呼叫 / landingpage / show / 1CGe2cveQ
Array
(
[controller] => Application\Controller\IndexController
[action] => show
)
如果已启用,请不要忘记清除配置缓存;)