Страница 1 из 1
Аргумент, начинающийся с "--" в консольном приложении
Добавлено: 2017.05.19, 14:57
ULTIMITE
При попытке передать в action из консоли аргумент вида "--eps=0.00001" я получаю ошибку:
"Error: Unknown option: --eps"
При изменении аргумента на "eps=0.000001" все работает как надо, и я пришел к выводу, что это Yii2 как то препятствует использованию аргументов, начинающихся с "--". Но мне необходимо использовать аргумент, начинающийся с "--", подскажите, как это можно сделать?
Re: Аргумент, начинающийся с "--" в консольном приложении
Добавлено: 2017.05.20, 00:27
futbolim
Передайте строкой, в контроллере распарсите
Re: Аргумент, начинающийся с "--" в консольном приложении
Добавлено: 2017.05.20, 01:10
ElisDN
Re: Аргумент, начинающийся с "--" в консольном приложении
Добавлено: 2017.05.22, 09:14
ULTIMITE
ElisDN писал(а): ↑2017.05.20, 01:10
Добавить
Куда добавить? Попробовал в качестве свойства класса, но это никак не помогло. Вот мой контроллер.
Код: Выделить всё
class DrillController extends Controller
{
//public $eps; // Пробовал так
public function actionCheck($drillfile, $eps = "--eps=0.0005")
{
try {
$d = new DrillModel;
return $d->CheckDrill($drillfile, $eps);
} catch(\Exception $e) {
echo 'Error :' . $e->getMessage() . "\r\n";
return 200;
}
}
}
Мне необходимо, чтобы строка аргумента была именно такой:
path/file.drl --eps=0.000005
Re: Аргумент, начинающийся с "--" в консольном приложении
Добавлено: 2017.05.22, 09:48
ElisDN
Код: Выделить всё
class DrillController extends Controller
{
public $eps = 0.0005;
public function actionCheck($drillfile)
{
try {
$d = new DrillModel;
return $d->CheckDrill($drillfile, $this->eps);
} catch(\Exception $e) {
echo 'Error :' . $e->getMessage() . "\r\n";
return 200;
}
}
}
Re: Аргумент, начинающийся с "--" в консольном приложении
Добавлено: 2017.05.22, 13:57
ULTIMITE
Спасибо, разобрался. Только помимо строки
надо переопределить класс options:
Код: Выделить всё
public $eps = 0.0005;
public function options($actionID)
{
return ['eps'];
}