의 분류와 MANY_MANY 관계를 선언 :는이 전 다음과 같은 데이터베이스 구조 있다고 가정 해 봅시다
나는 "눈 색깔", "머리 색"과 같은 분류 유형의 목록이 포함 된 Classifier
테이블이를, "신발 사이즈"등. 이것은 분류 자에 해당하는 속성 목록이있는 Property
테이블에 연결됩니다. 예를 들어, 머리 유형에 대해서는 , brown
, white
및 red
, 신발 크기는 US 8
, US 9
및 US 10
일 수 있습니다. Person
테이블은 MANY_MANY 방식으로 Property
테이블에 연결됩니다.
이 구조는 같은 YII에 선언하면 너무
'properties'=>array(self::MANY_MANY, 'Property', 'Xref(Person_id, Property_id)')
나는 이런 식으로 뭔가 할 수 있습니다
foreach ($person->properties as $property) {
echo ($property->classifier->name.': '.$property->name);
}
을하지만 내가 찾고 있어요하는 것처럼, 개별적으로 모든 속성을 해결하는 것입니다 $person->hairColor
또는 $person->shoeSize
.
확실히, 조건을 가진 여러 MANY_MANY 관계를 선언 할 수 있습니다 (Classifier_id 만 일부 값과 같음). 그러나이를 위해서는 모든 분류 자 ID를 미리 알고 있어야합니다. 전혀 유연하지 않습니다.
하지만 분류자가 자동으로 구문 분석하도록 yii에서이 관계를 선언하는 방법이 있습니까? 따라서 Classifier
테이블에 새로운 행을 추가하면 build
값이 slim
또는 athletic
과 같기 때문에 새로운 관계를 선언하지 않고 $person->build
을 사용할 수 있습니까?
뿐만 아니라, 나는 build
과 'slim'
와 Property
에 해당하는 것을 모두와 비교 Classifier_id
반대로 너무 $my_criteria->compare('build.name', 'slim')
처럼 CDbCriteria
에서 다음을 사용하고 싶습니다.
감사합니다. 시작되었습니다. 그러나 CDbCriteria와 함께 사용하면이 기능이 작동하지 않을 수 있습니다. 나는 그 질문을 갱신 할 것이다. – Beowulfenator