我应该为模型类中的所有输入元素定义规则吗?例如,模型表单有 2 个输入类型元素和一个文本区域。我可以只为这两种输入类型而不是 textarea 定义规则吗?
我已经这样做了,但是在 textarea 中输入的文本没有保存,但是如果我为它的长度设置一个规则,例如它会被保存。
我应该为模型类中的所有输入元素定义规则吗?例如,模型表单有 2 个输入类型元素和一个文本区域。我可以只为这两种输入类型而不是 textarea 定义规则吗?
我已经这样做了,但是在 textarea 中输入的文本没有保存,但是如果我为它的长度设置一个规则,例如它会被保存。
如果您没有为属性定义任何规则(或定义unsafe
规则),则在批量分配 ( ) 期间不会设置该属性$model->attributes = $_POST['ModelClassName']
。这似乎是您的 textarea 值未保存的最可能原因。请参阅保护属性分配。
Yii 文档建议只为接受用户输入的字段创建规则。但是,我发现为所有属性指定规则很有用,既基于业务逻辑,也基于底层数据库存储(尽管我不喜欢同一个类必须担心这两个方面的事实),然后将unsafe
规则添加到不允许批量赋值的字段。