如何编写控制台命令yii controller/action --param1=something --param2=anything
并在操作中检索这些命名参数?
答案 0 :(得分:0)
我发现文档确实说明了如何,而不是称之为"命名参数"正如我所料,它被称为选项:http://www.yiiframework.com/doc-2.0/guide-tutorial-console.html#create-command
虽然文档并不完整。所以这是一个例子:
class CustomerController extends Controller {
public $param1;
public $param2;
...
options
方法添加到控制器: public function options($actionID) {
return array_merge(parent::options($actionID), ['param1', 'param2']);
}
必须指定 $actionID
,parent::options($actionID)
用于包含任何现有选项。
$this->param1
和$this->param2
访问操作中的参数,例如: public function actionSomething() {
doAnything($this->param1, $this->param2);
}
将非命名和命名参数组合起来是可以的。指定的那些只需要最后指定。
如果您指定的参数没有值(例如。--param1
而不是--param1=500
),那么文档中也缺少这样的事实,$this->param1
的值将是布尔值{{1 }}。如果未指定,则值为true
。