많은 Kohana ORM 관계가? 나는 Model_User_Image 클래스에 const MAX = 3
를 선언함으로써 한계를 설정하는 생각을하고 images
의 현재 숫자에 대해 확인하려면이 값을 사용했다. 관계 또는 규칙을 통해 제한하는 방법이 있습니까?제한하는 나는 다음과 같은 관계가 두 가지 모델이
(1) 부모의 ID에 영향을 미치는 당신의 Model_User_Image
에 유효성 검사 규칙을 추가
많은 Kohana ORM 관계가? 나는 Model_User_Image 클래스에 const MAX = 3
를 선언함으로써 한계를 설정하는 생각을하고 images
의 현재 숫자에 대해 확인하려면이 값을 사용했다. 관계 또는 규칙을 통해 제한하는 방법이 있습니까?제한하는 나는 다음과 같은 관계가 두 가지 모델이
(1) 부모의 ID에 영향을 미치는 당신의 Model_User_Image
에 유효성 검사 규칙을 추가
이 문제는 실제로 다음과 같은 Kohana의 rules
- 시스템을 사용하여 해결할 수 있습니다. 당신은 지정된 방법 max_no_images
으로 Model_User
를 사용할 수 있습니다.
public function rules()
{
return array(
'user_id' => array(
array(array('Model_User', 'max_no_images')),//automatically use value of the field as parameter
),
);
}
2 두 가지 방법으로 Model_User
을 변경하십시오. 우선 허용되는 최대 이미지 수를 결정하기 위해 상수 또는 다른 종류의 변수가 필요합니다. 다음으로 이미지의 최대 수는 이미 (그렇다면, false를 반환)에 도달 할 경우 확인하는 max_no_images
을 정의해야합니다. ORM을 통해 쉽게 수행 할 수 있지만 쿼리를 직접 사용하면 더 빠를 수 있습니다. 여기에 게시 코드가 테스트되지는 않지만
public static function max_no_images($user_id)
{
$number_of_children = ORM::factory('User', $user_id)->children->count_all();
return ($number_of_children < Model_User::max_children);
}
, 나는 약간 다른 변화에 그렇게했다, 그래서이 방법은 정말 작동합니다. 그들이
a specified function from the same model for validation in the documentation
를 기는 SQL 규칙을 사용하고이 문제를 접근 할 수있는 또 다른 방법 사용 방법을 확인하십시오. 내가 훨씬 더 말할 않을거야, 당신은 이미지의 수에 대한 검사를 할 필요가 삽입 할 때/생각에서이 ORM 접근 방식으로 완전히 동일하므로, 이미지의 항목을 업데이트.
나는 존재하지 않는다고 생각합니다. 귀하의 솔루션은 나에게 잘 보입니다. 또는 ORM 모델을 확장하고 관계 정의에서 '최대'매개 변수를 읽는 자신의'add' 함수를 생성하십시오. – AmazingDreams