2012-12-30 39 views
0

我应该为模型类中的所有输入元素定义规则吗? 例如,模型窗体有2个输入类型元素和一个textarea。 我可以只为这两种输入类型定义规则,而不是针对textarea?我应该在模型类中定义哪些输入规则?

我已经这样做了,但textarea里面输入的文本不是保存,但如果我把一个规则,例如它的长度,它将被保存。

回答

3

如果您没有为属性定义任何规则(或定义unsafe规则),那么在批量分配($model->attributes = $_POST['ModelClassName'])期间将不会设置该属性。这似乎是为什么你的textarea值没有得到保存的最可能的原因。见Securing attribute assignments


Yii文档建议仅为接受用户输入的字段创建规则。不过,我发现指定所有属性的规则很有用,都基于业务逻辑和基础数据库存储(尽管我不喜欢同一个类必须担心这两个方面),然后将unsafe规则添加到不允许批量分配的领域。

相关问题