我们如何为多对多关系添加限制。按照文档中的示例,假设我们有3个表post
,category
和post_category
。假设我有一个帖子列表,并且每个帖子都有可能选择一个类别。
如何限制关系,以便每个帖子不超过5个类别,每个类别100个帖子?
我已经成功使用了count(post->books) < 5
post_category
来创建snore()
{
[[ -n "${_snore_fd:-}" ]] || exec {_snore_fd}<> <(:)
read ${1:+-t "$1"} -u $_snore_fd || :
}
控制器的动作,但我正在寻找一种方法来实现Yii友好,如果存在的话。
使用Yii 1.1.14。
答案 0 :(得分:1)
您可以使用自定义验证规则。例如,在PostCategory模型中,添加以下规则
public function rules()
{
return [
[['post'], 'validateSize'],
];
}
然后在模型中的任何地方添加validateSize()
public function validateSize($attribute_name,$params){
if(sizeof($this->post->categories) > 4)
$this->addError($attribute_name, Yii::t('post', 'You cant have more than 5 categories per post'));
}
尝试创建属于已有4个类别
的帖子的新类别时,会出错