我有这样的路线:
'cronExec' => array(
'options' => array(
'route' => 'exec [<commands>]',
'defaults' => array(
'controller' => 'Cron\Controller\Commands',
'action' => 'exec'
)
)
),
这会捕获:
- execCmd
- execCmd 命令名称此处
但我也想用无限数量的参数捕获第二个,例如:
- execCmd 命令名称此处 --x=y --a=b --c=1
- execCmd commandNameHere --param1=1 --param2=0
或者以任何其他方式允许我发送无限的、未知的命名参数到指定的命令,但仅当在它之前设置了 execCmd
最佳答案
'cronExec' => array(
'type' => 'Catchall',
'options' => array(
'route' => 'exec',
'defaults' => array(
'controller' => 'Cron\Controller\Commands',
'action' => 'exec'
)
)
),
更新1
或者您可以在单个参数内传递任何参数。
'cronExec' => array(
'options' => array(
'route' => 'exec [--params=]',
'defaults' => array(
'controller' => 'Cron\Controller\Commands',
'action' => 'exec'
)
)
),
这样称呼
php public/index.php exec --params="--any --other --params"
并在 Controller 中使用 getopt
或其他解析 $this->params('params')
。
关于php - ZF2 控制台路由无限参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159707/