Добрый день.
Вроде так должно быть:
$form->field($model, 'hit')->dropDownList(ArrayHelper::map($items, 'id', 'name'), ['prompt' => 'Select'])
Если из базы Вы получаете только целое число и хотите сопоставить с текстом, то в модели создайте публичный статический метод, который будет возвращать массив. Практически такой, как Вы сделали.
// В моделе
public static function getItems()
{
return [
'0' => 'мл.Лейтенант',
'1' => 'Лейтенант',
'2' => 'ст.Лейтенант',
'3' => 'Капитан',
'4' => 'Майор',
'5' => 'п.Полковник',
'6' => 'Полковник',
];
// В представлении
$form->field($model, 'hit')->dropDownList(ModelName::getItems(), ['prompt' => 'Select'])