이 의견은 DD.Jarod의 Yii AR 설명서 페이지에서 확인하십시오. http://www.yiiframework.com/doc/guide/1.1/en/database.arr#c970
"당신이 많은 관계로 많은 선언하면 관절 식 선언 내부 키의 순서는 'MY_ID, other_id'이어야합니다
class Owner extends CActiveRecord
{
public function relations()
{
return array(
'pets'=>array(self::MANY_MANY, 'Pet',
'tbl_post_category(pet_id, owner_id)'),
);
}
}
class Pet extends CActiveRecord
{
public function relations()
{
return array(
'owners'=>array(self::MANY_MANY, 'Post',
'tbl_post_category(owner_id, pet_id)'),
);
}
}
:
class Post extends CActiveRecord
{
public function relations()
{
return array(
'categories'=>array(self::MANY_MANY, 'Category',
'tbl_post_category(post_id, category_id)'),
);
}
}
class Category extends CActiveRecord
{
public function relations()
{
return array(
'Posts'=>array(self::MANY_MANY, 'Post',
'tbl_post_category(category_id, post_id)'),
);
}
}
그래서 코드의 모습
애완 동물과 소유자의 기본 키가 기본적으로 id 여야합니다 (pet_id/owner_id가 아님). 기본 키가 기본 명명 규칙과 일치하지 않거나 데이터베이스의 기본 키로 설정되지 않았다는 것을 명확히하지 않으면 Yii가 혼란 스러울 수 있습니다. 당신은`Pet_Owner_Link` 테이블을 필요로하는 대신 단순히 이유는 무엇
$owner = Owner::model()->findByPk((int)$id);
foreach($owner->pets as $pet)
{
print $pet->name;
}
: 당신은 기본 키가이 같은 모델에 지정할 수 있습니다 : 마지막으로
,이 같은 정보를 가져 오지 것이다 'Pet.owner_id' 칸? 여러 명의 소유자가있는 애완 동물을 미리 보십니까? http://www.yiiframework.com/doc/guide/1.1/en/database.arr과 같은 예제가있는 설명서를 읽었습니까? – DCoder