mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 20:19:42 +08:00
Fix #15526: Show valid aliases and options on invalid input in console application
This commit is contained in:
committed by
GitHub
parent
37d62c2509
commit
e7e72e2ff6
@ -105,7 +105,18 @@ class Controller extends \yii\base\Controller
|
||||
if (array_key_exists($name, $optionAliases)) {
|
||||
$params[$optionAliases[$name]] = $value;
|
||||
} else {
|
||||
throw new Exception(Yii::t('yii', 'Unknown alias: -{name}', ['name' => $name]));
|
||||
$message = Yii::t('yii', 'Unknown alias: -{name}', ['name' => $name]);
|
||||
if (!empty($optionAliases)) {
|
||||
$aliasesAvailable = [];
|
||||
foreach ($optionAliases as $alias => $option) {
|
||||
$aliasesAvailable[] = '-' . $alias . ' (--' . $option . ')';
|
||||
}
|
||||
|
||||
$message .= '. ' . Yii::t('yii', 'Aliases available: {aliases}', [
|
||||
'aliases' => implode(', ', $aliasesAvailable)
|
||||
]);
|
||||
}
|
||||
throw new Exception($message);
|
||||
}
|
||||
}
|
||||
unset($params['_aliases']);
|
||||
@ -136,7 +147,12 @@ class Controller extends \yii\base\Controller
|
||||
unset($params[$kebabName]);
|
||||
}
|
||||
} elseif (!is_int($name)) {
|
||||
throw new Exception(Yii::t('yii', 'Unknown option: --{name}', ['name' => $name]));
|
||||
$message = Yii::t('yii', 'Unknown option: --{name}', ['name' => $name]);
|
||||
if (!empty($options)) {
|
||||
$message .= '. ' . Yii::t('yii', 'Options available: {options}', ['options' => '--' . implode(', --', $options)]);
|
||||
}
|
||||
|
||||
throw new Exception($message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user