Для каких входных данных я должен определить правила в классе модели?

Должен ли я определять правила для всех элементов ввода в классе модели? Например, форма модели имеет 2 элемента ввода и текстовое поле. Могу ли я просто определить правила для этих двух типов ввода, а не для текстового поля?

Я сделал это, но текст, введенный в текстовую область, не сохраняется, но если я установлю правило, например, для его длины, он будет сохранен.


person hd.    schedule 30.12.2012    source источник


Ответы (1)


Если вы не определите никаких правил для атрибута (или определите правило unsafe), этот атрибут не будет установлен во время массового назначения ($model->attributes = $_POST['ModelClassName']). Это кажется наиболее вероятной причиной, по которой значение вашей текстовой области не сохраняется. См. раздел Защита назначений атрибутов.


Документация Yii предлагает создавать правила только для тех полей, которые вводятся пользователем. Однако я счел полезным указать правила для всех атрибутов, основанные как на бизнес-логике, так и на базовой базе данных (хотя мне не нравится тот факт, что один и тот же класс должен беспокоиться об обоих этих аспектах), а затем добавить unsafe правила в поля, в которых нельзя допускать массовое присвоение.

person DCoder    schedule 30.12.2012