Есть виджет по маске MaskedInput, только проблема в том, что валидацию она не проходит
Client.php
public function rules()
{
return [
[['name', 'phone'], 'required', 'on' => self::SCENARIO_DEFAULT],
[['phone'], 'number'],
[['phone'], 'filter', 'filter' => function($value){
return str_replace(['(', ')', '-'], '', $value);
}],
[['phone'], 'unique'],
];
}
И во вьюшке
<?= $form->field($model, 'phone')->widget(MaskedInput::className(),[
'mask' => '8(999)999-99-99',
]) ?>
Если по документации следовать то там массив можно применять, но почему то всегда выходит валидация, что телефон должен быть целым числом
В базе данных тип decimal