没有在 ZF3 中获取默认路由参数
Not getting default route parameter in ZF3
在 ZF3 中,我想从路由中获取默认参数。我在控制器中以这种方式获取参数:
$params = $this->params()->fromRoute('crud');
我的网址如下所示:
1: somedomain/admin/color/add
2: somedomain/admin/color
在 1) 我在我的 $params
变量中得到 add
。
在 2) 我得到 null
但我期待默认值(在这种情况下 view
)
我认为这是路由器配置错误的问题。
'admin' => [
'type' => Segment::class,
'options' => [
'route' => '/admin/:action',
'defaults' => [
'controller' => Controller\AdminController::class,
'action' => 'index',
],
],
'may_terminate' => true,
'child_routes' => [
'color' => [
'type' => Segment::class,
'options' => [
'route' => '/:crud',
'constraints' => [
'crud' => 'add|edit|delete|view',
],
'defaults' => [
'controller' => Controller\AdminController::class,
'crud' => 'view',
],
],
],
],
],
在您的路由定义中,您没有说明路由器您的 crud
参数是可选的。所以当你调用somedomain/admin/color
时,选择的是路由/admin/:action
。
要指定可选参数,请使用括号表示法(假设您使用相同的操作):
'admin' => [
'type' => Segment::class,
'options' => [
'route' => '/admin/:action[/:crud]',
'defaults' => [
'controller' => Controller\AdminController::class,
'action' => 'index',
'crud' => 'view',
],
'constraints' => [
'crud' => 'add|edit|delete|view',
],
],
],
在 ZF3 中,我想从路由中获取默认参数。我在控制器中以这种方式获取参数:
$params = $this->params()->fromRoute('crud');
我的网址如下所示:
1: somedomain/admin/color/add
2: somedomain/admin/color
在 1) 我在我的 $params
变量中得到 add
。
在 2) 我得到 null
但我期待默认值(在这种情况下 view
)
我认为这是路由器配置错误的问题。
'admin' => [
'type' => Segment::class,
'options' => [
'route' => '/admin/:action',
'defaults' => [
'controller' => Controller\AdminController::class,
'action' => 'index',
],
],
'may_terminate' => true,
'child_routes' => [
'color' => [
'type' => Segment::class,
'options' => [
'route' => '/:crud',
'constraints' => [
'crud' => 'add|edit|delete|view',
],
'defaults' => [
'controller' => Controller\AdminController::class,
'crud' => 'view',
],
],
],
],
],
在您的路由定义中,您没有说明路由器您的 crud
参数是可选的。所以当你调用somedomain/admin/color
时,选择的是路由/admin/:action
。
要指定可选参数,请使用括号表示法(假设您使用相同的操作):
'admin' => [
'type' => Segment::class,
'options' => [
'route' => '/admin/:action[/:crud]',
'defaults' => [
'controller' => Controller\AdminController::class,
'action' => 'index',
'crud' => 'view',
],
'constraints' => [
'crud' => 'add|edit|delete|view',
],
],
],