1

我想在关系表中插入一个其他属性(tiers_temps在我的示例中为“”),该属性是否可以使用函数“ link()”或其他?

我实际上使用了这些代码,但我必须更新归档的“ tiers_temps”:

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

使用表“user_has_examen”结构:

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   
4

3 回答 3

0

当我发现自己处于这些情况时,我宁愿放弃多对多的表识别并转向这样的结构:

  • ID
  • 用户身份
  • 考试编号
  • tiers_temps

因为我发现在您使用的结构中管理值 tiers_temps 非常不方便。

于 2012-09-28T10:02:29.150 回答
0

你的提议没有错误。对象 $user 指的是表“user”而不是“user_has_examen”(不是之前描述的,这是正确的),因此用户不存在“tiers_temps”。该解决方案有效,但我循环访问 Doctrine ...

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();
    }
}
于 2012-09-28T07:00:30.407 回答
0

我没有找到与中间项目交互的好方法。但是您可以对关系采取行动以检索所有用户,然后tiers_temps在保存之前应用您的值Examen

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

$users = $Examen->Users;
foreach ($users as $user)
{
  $user->tiers_temps = '45';
}
于 2012-09-27T14:41:55.570 回答