Php Zend framework2+带参数的布线
我想在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__' =
'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]+”,感谢大家:-