2011-08-13 5 views
0

이제 CakePHP가 자동으로 유효성을 검사 할 수있는 좋은 방법이 있습니다. 나는 isUnique에 관심이 있지만 조인 열에 대해서는 관심이 있습니다. Join 컬럼에 대한 CakePHP 유효성 확인

는 user1_id는 어떻게 확인 검사에, 그것은 user1_id/user2_id 쌍을 필요로이 테이블의 모델로 I 입력 뭔가 있도록 고유 할 수

을 user2_id, 나는 두 개의 열을 말한다.

IE에서는 행에 이미 user1_id = 1, user2_id = 5를 삽입 할 수 없습니다.

감사합니다.

답변

2

귀하의 모델에 대해 사용자 지정 유효성 검사 방법을 사용해야한다고 생각합니다. 다음과 같은 뭔가 :

class MyModel extends AppModel { 
    var $name = 'MyModel'; 
    var $validate = array(
    'user1_id' => array(
     'rule' => 'uniqueUserCombination', 
     'message' => 'This combination of users is already taken!' 
    ) 
    ); 

    function uniqueUserCombination($check) { 
     $count = $this->find('count', array(
      'conditions' => array(
       'user1_id' => $this->data['MyModel']['user1_id'], 
       'user2_id' => $this->data['MyModel']['user2_id'], 
      ) 
     )); 
     return $count==0; 
    } 
} 

당신은 "행이 이미있는 경우 당신이 user1_id = 1, user2_id = 5를 삽입 할 수 없습니다"고 말했다. 위의 코드는 예를 들어 작동하지만 user1_id = 5, user2_id = 1을 허용합니다. 위의 find에 조건을 추가해야합니다. 데이터베이스의 두 열 모두에 UNIQUE 색인을 생성하는 것이 좋습니다.

관련 문제