跟进我之前的问题
Why are my params not showing up in the url?
处理空白参数的最佳方法是什么?我是否需要为每个字段编写if语句并在null时分配值?目前我有2个参数,如果第一个是空白,则将第二个参数的值设置为第一个 以下是一个例子。如果Zip是第一个参数而bar是第二个参数...
www.foo.com/results/12345/bar
zip = 12345
bar = bar
如果第一个参数是空的......
www.foo.com/results/bar/
zip = bar
我想在网址中执行此操作,以便以下工作。
$search_zip = $this->params()->fromRoute('zip','default');
以下是我发布参数的地方。
return $this->redirect()->toRoute('home/results',array(
'zip'=>$homeSearch->search_zip ,
答案 0 :(得分:0)
您需要创建路线
'results' => [
'type' => 'Segment',
'options' => [
'route' => 'results[/:zip][/:bar][/]',
'defaults' => [
'__NAMESPACE__' => '...',
'controller' => '...',
'action' => '...',
'zip' => 'default',
'bar' => 'default'
],
'constraints' => [
'zip' => '[0-9]+',
'bar' => '[a-z]+'
]
]
]
]
控制器中的
$this->params('zip');
$this->params('bar');
$this->redirect()->toRoute('results', ['zip' => 123, 'bar' => 'bar']);