【发布时间】:2014-09-22 19:28:23
【问题描述】:
我应该为模型类中的所有输入元素定义规则吗? 例如,模型表单有 2 个输入类型元素和一个文本区域。 我可以只为这两种输入类型而不是 textarea 定义规则吗?
我已经这样做了,但是在 textarea 中输入的文本没有保存,但是如果我为它的长度设置一个规则,例如,它将被保存。
【问题讨论】:
标签: php yii yii-validation
我应该为模型类中的所有输入元素定义规则吗? 例如,模型表单有 2 个输入类型元素和一个文本区域。 我可以只为这两种输入类型而不是 textarea 定义规则吗?
我已经这样做了,但是在 textarea 中输入的文本没有保存,但是如果我为它的长度设置一个规则,例如,它将被保存。
【问题讨论】:
标签: php yii yii-validation
如果您没有为属性定义任何规则(或定义unsafe 规则),则不会在批量分配期间设置该属性 ($model->attributes = $_POST['ModelClassName'])。这似乎是您的 textarea 值未保存的最可能原因。见Securing attribute assignments。
Yii 文档建议只为接受用户输入的字段创建规则。但是,我发现为所有属性指定规则很有用,既基于业务逻辑又基于底层数据库存储(尽管我不喜欢同一个类必须担心这两个方面的事实),然后添加unsafe禁止批量赋值的字段的规则。
【讨论】: