我在 MySQL 中有两个具有一对多关系设置的表。我使用 Gii 来生成模型和 CRUD。
如果我尝试输入实际上不是另一个表的外键的外键值,Yii 默认会创建规则和默认错误消息吗?
我在“The Yii Book”中看到了这一段,它可以回答我的问题。
“{TIP}‘exists’验证器也需要这些关系,它确认此表中的外键值作为另一个表中的主键存在。”
那么我需要编写一个“存在”验证器吗?
我在 MySQL 中有两个具有一对多关系设置的表。我使用 Gii 来生成模型和 CRUD。
如果我尝试输入实际上不是另一个表的外键的外键值,Yii 默认会创建规则和默认错误消息吗?
我在“The Yii Book”中看到了这一段,它可以回答我的问题。
“{TIP}‘exists’验证器也需要这些关系,它确认此表中的外键值作为另一个表中的主键存在。”
那么我需要编写一个“存在”验证器吗?
默认情况下不创建与外键相关的验证规则。
如果数据库给出外键违规错误,Yii 将生成错误消息(CDbException)。
Yii 创建它的默认规则,你可以在模型中找到例如
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('primaryEmail, password, creationTime, IPAddress, isBusiness, forgotPassTime, aboutMe, fname, lname', 'required'),
);
}
您还可以为验证提供自定义消息
它还提供了默认关系,例如
public function relations()
{
return array(
'articles' => array(self::HAS_MANY, 'Article', 'authorId'),
}