2012-05-15 3 views
3

3 개의 테이블이 있습니다. User (ID, Name) | 자습서 (ID, Tutcontent) | UserTutorial (ID, IDUser, IDTutorial). 나는 그것은하여 MyDatabase에 새로운 기록을 저장하지Yii와 많은 관계가 많은 모델 저장

$user = User::model()->findByPk(1); 
    $tutorial = Tutorial::model()->findByPk(1); 
    $userTutorial = new UserTutorial; 
    $userTutorial->IDUser = $user->ID; 
    $userTutorial->IDTutorial = $tutorial->ID; 
    $userTutorial->save(); 

모델을 저장하려면이 코드를 사용

답변

1

이 당신의 작업에 대한 매우 유용한 확장 기능입니다 : CAdvancedArBehavior
올바르게 모델의를 정의하는 것을 잊지 마세요 관계 : A great tutorial about relations

+0

고맙습니다.하지만 여전히 문제가 있습니다. 'CAdvancedArBehavior.php'를 확장 디렉토리에 복사하고,'main.php'에서 변경합니다. 'Post.php' 관계에서'import '=> array ('application.extensions.CAdvancedArBehavior '),'categories '=> array (' self :: MANY_MANY, 'category', 'categorypost (postid, categoryid)'), 그 아래에 추가 할 \t public function behaviors() {배열 ('CAdvancedArBehavior'=> 배열 ('클래스'=> '응용 프로그램 확장 .CAdvancedArBehavior '));} 'PostController.php'에서 public 함수를 추가하십시오. actionNewPost() { $ post = new Post(); $ post-> categories = category :: model() -> findAll(); $ post-> save();} –

1

이 시도 ..

$user = User::model()->findByPk(1); 
    $tutorial = Tutorial::model()->findByPk(1); 
    $userTutorial = new UserTutorial; 
    $userTutorial->IDUser = $user->ID; 
    $userTutorial->IDTutorial = $tutorial->ID; 
    $userTutorial->save(false); 
-1
$user = User::model()->findByPk(1); 
$tutorial = Tutorial::model()->findAll("id=2");  
$user->**RELATION_ALIAS** = $tutorial; 
$user->save(); 
관련 문제