2017-11-27 11 views
2

다 대다 관계에 한계를 추가하는 방법은 무엇입니까? 문서의 예에 따라 post, categorypost_category의 3 개의 테이블이 있다고 가정 해 봅시다. 게시물 목록이 있고 모든 게시물에 범주를 선택할 수있는 가능성이 있다고 가정 해 보겠습니다.다 대 다 관계에 삽입 한도 추가

게시물 당 5 개 이상의 카테고리와 카테고리 당 100 개 이상의 게시물을 올릴 수 없도록 관계를 '제한 할 수 있습니까?

컨트롤러가 post_category 컨트롤러를 만들 때 count(post->books) < 5 컨트롤러를 사용하고 있는지 확인하고 있지만 더 이상 Yii를 사용하는 방법이 있는지 알고 싶습니다.

Yii에서 작업 중 1.1.14.

답변

1

사용자 지정 유효성 검사 규칙을 사용할 수 있습니다. 당신의 PostCategory 모델의 예를 들어,에 validateSize()를 추가 모델에 어디 그런 다음 규칙

public function rules() 
{ 
    return [ 
     [['post'], '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 개의 카테고리가 있습니다

+0

당신은 무엇을 의미합니까 : 이것은 이미 4 개의 카테고리가있는 게시물에 속한 새로운 카테고리를 만들려고 할 때 오류가됩니까? 나는 포스트와 카테고리를 독립적으로 만들고있다. PostCategory 모델에 유효성 검사 규칙을 추가하면 안됩니까? –

+0

모델을 보지 못했지만이 질문에서 이해 한 것은 포스트와 카테고리가 일대일로 많은 관계가 있다는 것입니다. 그래서 나는 당신이 분야별로 post_id를 가지고 있어야한다고 추론했다. 그러나 두 모델을 바인드하는 별도의 모델 인 PostCategory가 있으면 그 모델도 함께 추가 할 수 있습니다. 두 가지 모두 오류를 얻고 자하는 방식과 모델 사용 방법에 따라 작동합니다. – mrateb

+0

글쎄, 내 첫 번째 질문에서 모든 것을 올바르게 작성했다고 생각합니다. 포스트와 카테고리 사이에 많은 관계가있어 중간에 포스트 카테고리 테이블이 생깁니다. –