我有一个模型扩展了具有特定规则的 AR 类。但现在我需要在这个表中插入行,但是有其他规则。我是否需要使用新规则创建其他模型,或者可以定义其他规则?
问问题
912 次
3 回答
5
您可以设置验证方案。例如:
$model = new Post();
$model->scenario = 'new_line';
$model->attributes = $_GET['data'];
if ($model->validate()){
$model->save(false);
}
在您的模型中:
public function rules()
{
return array(
array('username, text', 'required','on' => 'new_line')
);
}
在模型规则中,所有数组行都必须有键“on”,否则此规则将不适用。
在这里阅读更多。
于 2012-12-24T09:31:48.440 回答
1
如果您正在扩展您的课程(活动记录),那么您实际上可以覆盖您的 rules() 函数,即:
class User extends ActiveRecord(){
function rules(){
return array(array(
// Nomrally a rule
))
}
}
然后让你的下一节课:
class User_extended extends ActiveRecord(){
function rules(){
return array(array(
// Nomrally a rule
))
}
}
应该就是这样。然后您可以调用User_extended
该类,您的规则将应用于父User
类,因为 Yii 在$this
上下文中获取规则$this
并将成为您的子类。
但是你也可以在这里使用场景,但它可能会变脏,特别是如果你需要覆盖其他方法。
于 2012-12-24T09:35:02.047 回答
0
谢谢。现在我正在尝试使用它
/**
* @param string $attribute fields names wich should be validated
* @param array $params additional params for validation
*/
public function ValidatorName($attribute,$params) { … }
于 2012-12-24T09:43:22.113 回答