Как я могу написать консольную команду yii controller/action --param1=something --param2=anything
и получить эти именованные параметры в действии?
Я узнал, что в документации действительно говорится, но вместо того, чтобы называть ее «именованными параметрами», как я ожидал, она называется параметрами: http://www.yiiframework.com/doc-2.0/guide-tutorial-console .html # создать команду-
Однако документы не совсем полны. Итак, вот пример:
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
будет логическим. Если не указано вообще, значение будет NULL
.