到目前为止,我只使用整数值作为网址中的请求参数。
现在我需要处理包含空格等的字符串,例如: " 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
我确定问题是空格,所以我的问题更详细一点,我可以引用或稍微说一下路由参数吗?
答案 0 :(得分:0)
解决: 我在路由中的正则表达式是错误的,我将其更改为:
'id' => '[a-zA-Z0-9\-\. /]*',