2012-09-27 2 views
1

관계 테이블에 다른 속성 (예 : tiers_temps)을 삽입하고 싶습니다. 기능이 "link()"또는 다른 사람이 가능합니까?다른 속성을 링크 함수에 추가하십시오.

는 사실이 코드를 사용하지만, 나는이 "tiers_temps"를 제출 업데이트해야합니다 :

테이블 "user_has_examen"구조
$Examen->link('Users', $listAdd); 

:

Field  Type Null Key Default Extra 
user_id  int(11) NO PRI 0 
examen_id int(11) NO PRI 0 
tiers_temps int(11) YES  NULL 

답변

0

내가 좋은 방법을 찾을 수 없습니다 중간 항목과 상호 작용할 수 있습니다. 하지만 저장하기 전에 tiers_temps 값을 적용, 모든 사용자를 검색 할 관계에 따라 행동하고, 할 수 Examen :

$Examen->link('Users', $listAdd); 

$users = $Examen->Users; 
foreach ($users as $user) 
{ 
    $user->tiers_temps = '45'; 
} 
+0

내가 찾은 대안입니다. $ userE를 $ Examen으로 바꾸면 제대로 작동합니다. 감사합니다 foreach에서 관계를 사용하거나 사용자 ID와 루프 액세스 고유 관계를 포함하는 배열 $ listAdd를 사용하는 것이 더 효율적입니다 (관련 tier_temps를 넣으시겠습니까? – Patou

+0

데이터를 가져 오기 위해 doctrine을 쿼리하지 않고 관련 테이블에 액세스하는 방법이 있어야합니다. – j0k

+0

네,하지만이 방법을 모르겠습니다. – Patou

0

당신의 제안에 해제 오류가 있습니다. $ user라는 객체는 "user_has_examen"이 아닌 "user"테이블을 참조합니다. (이전에 descibe하지 않았습니다.) 그래서 "tiers_temps"는 사용자를 위해 존재하지 않습니다. 이 솔루션은 작동하지만 루프 액세스 교리 ...

foreach($user as $userId){ 
    $UserExam = Doctrine::getTable('UserExamen')->findByDql('user_id = ? AND examen_id = ?', array($userId, $exam))->getFirst(); 
    if($UserExam->tiers_temps != $users[$userId]){ 
     $UserExam->tiers_temps = $users[$userId]; 
     $UserExam->save(); 
    } 
} 
0

나는이 상황에서 자신을 찾을 때 내가 확인 많은 많은 테이블을 포기하고이 같은 구조로 이동하는 것을 선호 :

  • ID
  • USER_ID
  • tiers_temps
을 examen_id

왜냐하면 내가 사용하는 구조에서 tiers_temps 값을 관리하는 것이 매우 불편하기 때문입니다.

+1

당신의 경험에 감사드립니다. – Patou