readonly

The type 'readonly ....' is 'readonly' and cannot be assigned to the mutable type Ошибка

Проблема

The type 'readonly {....}[]' is 'readonly' and cannot be assigned to the mutable type

Возникает для кода вида:

let deliveryTypes = [
    { value: 1, label: 'Без доставки'},
    { value: 2, label: 'Страна'},
    { value: 3, label: 'Город'},
];

deliveryTypes = Object.freeze(deliveryTypes);

export { deliveryTypes };

Причина

Полное сообщение об ошибке в моем случае выглядит так:

yii2 Разрешнить редактирование одного поля формы, запретив все остальные (readonly)

Проблема

В yii2 (на момент написание этой заметки) были в приоритет опция формы ('fieldConfig') над собственными опциям конктреного поля ('inputOptions' ). Всё дело было в порядке слияния конфигурации в array_merge().

Решение

Создаём собственный ActiveField как и раньше и добавляем (переопределяем) в него метод:

yii2 Как грамотно обрабатывать модель если некоторые поля должны быть readonly -- только для чтения (избежать подделки запроса)

тут 2 варианта вижу: - disable, который ты описал

в этом случае значения не попадают на сервер

и поля у модели просто не обновляются, но у пользователя все равно отсается возможность убрать дизейбл с поля и перезаписать его

второй вариант, если не доверяешь пользователю - серверный
у модели есть правила валидации, а есть еще штука -- сценарии валидации
вот все правила, которые ты описываешь для модели, попадают в сценарий default

Subscribe to RSS - readonly