Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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 Zend framework2+带参数的布线_Php_Linker_Routing_Zend Framework2 - Fatal编程技术网

Php Zend framework2+带参数的布线

Php Zend framework2+带参数的布线,php,linker,routing,zend-framework2,Php,Linker,Routing,Zend Framework2,我想在Zend framework2中编写自定义路由。我编写了以下代码: 'objects' => array( 'type' => 'Literal', 'options' => array( 'route' => '/objects', 'defaults' => array( '__NAMESPACE__' =

我想在Zend framework2中编写自定义路由。我编写了以下代码:

'objects' => array(
            'type' => 'Literal',
            'options' => array(
                'route' => '/objects',
                'defaults' => array(
                    '__NAMESPACE__' => 'Application\Controller',
                    'controller' => 'Index',
                    'action' => 'decode',
                ),
            ),
            'may_terminate' => true,
            'child_routes' => array(
                'default' => array(
                    'type' => 'Segment',
                    'options' => array(
                        'route' => '/[:mask]',
                        'constraints' => array(
                            'mask' => '[a-zA-Z][a-zA-Z0-9_-.,]*',
                        ),
                        'defaults' => array(

                        ),
                    ),
                ),
            ),
        ),
我必须这样回答:

cracow,0.html

克拉科夫,游泳,1.html

http:restarations.en/objects/swam,3.html

我必须在控制器中获取的blod文本。
另外,我应该如何预处理corect路由器??我该怎么做呢?

您应该添加默认值以及类似的内容:

'objects' => array(
        'type' => 'Literal',
        'options' => array(
            'route' => '/objects',
            'defaults' => array(
                '__NAMESPACE__' => 'Application\Controller',
                'controller' => 'Index',
                'action' => 'decode',
            ),
        ),
        'may_terminate' => true,
        'child_routes' => array(
            'default' => array(
                'type' => 'Segment',
                'options' => array(
                    'route' => '/[:mask]',
                    'constraints' => array(
                        'mask' => '[a-zA-Z][a-zA-Z0-9_-.,]*',
                    ),
                    'defaults' => array(
                          '__NAMESPACE__' => 'Application\Controller',
                          'controller' => 'Index',
                          'action' => 'decode',
                    ),
                ),
            ),
        ),
    ),
然后,在控制器上获取参数时,应执行以下操作:

 $mask = $this->params()->fromRoute('mask');

好的,但我不能使用插件。我的preg_匹配错误,因为我收到如下错误:警告:preg_匹配:编译失败:C:\wamp\www\restauracje\vendor\ZendFramework-2.2.0\library\Zend\Mvc\Router\Http\Segment.php第370行的字符类中偏移量37处的范围顺序错误尝试此“路由”=>“/[:mask].html”,'约束'=>数组'掩码'=>'[a-zA-Z][a-zA-Z0-9_-,]+',对不起,我弄错了,关于插件的文本是错误粘贴的:请做一个简单的测试,这个url:和这个路由:'route'=>'/[:mask]','constraints'=>数组'mask'=>'[a-zA-Z]+',我这样解决了我的问题:我的路由器:'route'=>'[/:mask].html',“约束”=>数组“掩码”=>“[a-zA-Z\,\.0-9]+”,感谢大家:-