Yii2: Как вы используете именованные параметры в консольных командах?

Как я могу написать консольную команду yii controller/action --param1=something --param2=anything и получить эти именованные параметры в действии?

1

Решение

Я обнаружил, что в документации сказано, как это сделать, но вместо того, чтобы называть его «именованными параметрами», как я ожидал, это называется options: http://www.yiiframework.com/doc-2.0/guide-tutorial-console.html#create-command

Документы не совсем полны, хотя. Итак, вот пример:

  1. Вы добавляете параметры как свойства в контроллер:
class CustomerController extends Controller {
public $param1;
public $param2;
...
  1. Вы добавляете options метод к контроллеру:
    public function options($actionID) {
return array_merge(parent::options($actionID), ['param1', 'param2']);
}

$actionID должен быть указан, и parent::options($actionID) используется для включения любых существующих опций

  1. Теперь вы можете получить доступ к параметрам в вашем действии с помощью $this->param1 а также $this->param2Например:
    public function actionSomething() {
doAnything($this->param1, $this->param2);
}

Можно комбинировать неназванные и именованные параметры. Названные из них должны быть указаны последними.

Также в документации отсутствует тот факт, что если вы укажете параметр без значения (например, --param1 вместо --param1=500) значение $this->param1 будет логическим true, Если вообще не указано значение будет NULL,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]