Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未在ZF3中获取默认路由参数_Php_Parameters_Default_Zend Route_Zend Framework3 - Fatal编程技术网

Php 未在ZF3中获取默认路由参数

Php 未在ZF3中获取默认路由参数,php,parameters,default,zend-route,zend-framework3,Php,Parameters,Default,Zend Route,Zend Framework3,在ZF3中,我想从route中获取默认参数。我在控制器中以这种方式获取参数: $params = $this->params()->fromRoute('crud'); 我的URL如下所示: 1: somedomain/admin/color/add 2: somedomain/admin/color 在1)中,我在我的$params变量中获得add。 在2)我得到的是null,但我期望默认值(在本例中是视图) 我认为这是路由器配置不好的问题 'admin' => [

在ZF3中,我想从route中获取默认参数。我在控制器中以这种方式获取参数:

$params = $this->params()->fromRoute('crud');
我的URL如下所示:

1: somedomain/admin/color/add
2: somedomain/admin/color
在1)中,我在我的
$params
变量中获得
add

在2)我得到的是
null
,但我期望默认值(在本例中是
视图

我认为这是路由器配置不好的问题

'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',
        ],
    ],
],