请求参数中的数据类型$ id = $ this-> params() - > fromRoute(' id');

时间:2017-10-31 17:51:54

标签: zend-framework zend-route zend-framework3 zend-view

到目前为止,我只使用整数值作为网址中的请求参数。

现在我需要处理包含空格等的字符串,例如: " xyz 666 888-VCT"

我从路线脚本中发送路线和参数:

<a href="<?= $this->url('pcb', ['action' => 'index', 'id' => $rs->Part_Number]) ?>">PCB</a>

我尝试在我的控制器操作中获取它:

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

在这种情况下,如何正确捕获字符串值?

编辑: 这里还有我的路由参数:

'pcb' => [
                                'type'    => Segment::class,
                                'options' => [
                                        'route' => '/pcb[/:action[/:id]]',
                                        'constraints' => [
                                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                              'id'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                                        ],
                                        'defaults' => [
                                                'controller' => Controller\PcbController::class,
                                                'action'     => 'index',
                                        ],
                                ],

                        ],

我总是

  

请求的网址无法通过路由匹配

我的网址如下: ... pcb / index / 3441 99901 B 03 2519 xyz

我确定问题是空格,所以我的问题更详细一点,我可以引用或稍微说一下路由参数吗?

1 个答案:

答案 0 :(得分:0)

解决: 我在路由中的正则表达式是错误的,我将其更改为:

 'id'     => '[a-zA-Z0-9\-\. /]*',