如何在 Yii 模型中允许文本属性为空?
how to allow text attributes to be empty in Yii model?
我有一个文章模型,文章可以用英文和阿拉伯文两种语言写。
所以每种语言文本都有 2 个属性,我希望在创建和更新时允许这两个属性为空,因为属性类型是文本而不是 varchar。
如何为我需要的内容编写规则?
http://www.yiiframework.com/doc/api/1.1/CStringValidator
array(
array('text_en','length'),
array('text_ar','length'),
);
当您从数据库 table 生成模型时,yii 在 rule()
函数中添加如下内容:
array('field1, field2, ...', 'required')
此数组基于数据库列中的 NOT NULL
属性。这意味着,如果数据库字段有 NOT NULL
属性 checked,yi 将其添加到上面的数组中。您需要做的就是从上面的数组中删除您的两个字段。
我不确定你所说的“..知道属性类型是文本而不是 varchar...”是什么意思,但是 Yii 已经内置了机制来定义你的验证规则。
参考Yii documentation了解更多详情。
@hamed 在他的回答中指出了如何使字段成为必填字段。您可以通过指定验证规则为真的场景来添加。例如。
array('field1, field2', 'required', 'on' => array('create', 'update'));
将仅对插入和更新应用 'required' 规则。另一方面。
array('field1, field2', 'required', 'except' => array('create', 'update'));
将仅对除插入和更新之外的所有场景应用 'required' 规则。
我有一个文章模型,文章可以用英文和阿拉伯文两种语言写。
所以每种语言文本都有 2 个属性,我希望在创建和更新时允许这两个属性为空,因为属性类型是文本而不是 varchar。
如何为我需要的内容编写规则?
http://www.yiiframework.com/doc/api/1.1/CStringValidator
array(
array('text_en','length'),
array('text_ar','length'),
);
当您从数据库 table 生成模型时,yii 在 rule()
函数中添加如下内容:
array('field1, field2, ...', 'required')
此数组基于数据库列中的 NOT NULL
属性。这意味着,如果数据库字段有 NOT NULL
属性 checked,yi 将其添加到上面的数组中。您需要做的就是从上面的数组中删除您的两个字段。
我不确定你所说的“..知道属性类型是文本而不是 varchar...”是什么意思,但是 Yii 已经内置了机制来定义你的验证规则。
参考Yii documentation了解更多详情。
@hamed 在他的回答中指出了如何使字段成为必填字段。您可以通过指定验证规则为真的场景来添加。例如。
array('field1, field2', 'required', 'on' => array('create', 'update'));
将仅对插入和更新应用 'required' 规则。另一方面。
array('field1, field2', 'required', 'except' => array('create', 'update'));
将仅对除插入和更新之外的所有场景应用 'required' 规则。