我遇到了奇怪的问题(?)。也许这是有记录的功能,但我找不到它。
我有一个来自CActiveRecord的模型类。在模型中,我有方法rules
,它验证了验证规则。
我有控制器操作whatever
。在这个动作中,我正在尝试使用从$ _POST获得的数据来分配模型属性。这是来自conroller的简化代码片段
$model=new SomeModel();
if(isset($_POST['SomeForm']))
{
$model->attributes=$_POST['SomeForm'];
if($model->validate())
{
$model->save();
}
}
问题在于以下内容。使用大量的assiginig并非所有领域都在努力。只有在SomeModel::rules()
中声明了验证规则的文件。如果我要为不应该验证的字段分配数据,那么该字段将变为空数据库。
有人可以解释会发生什么吗?
提前致谢
答案 0 :(得分:5)
您需要在规则函数中声明其余变量(您希望大量分配)为“安全” -
http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/