我想在关系表中插入另一个属性(在我的示例中为“tiers_temps
”)ids,是否可以使用函数“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
答案 0 :(得分:0)
我找不到与中间项交互的好方法。但您可以根据关系采取行动来检索所有用户,然后在保存tiers_temps
之前应用Examen
值:
$Examen->link('Users', $listAdd);
$users = $Examen->Users;
foreach ($users as $user)
{
$user->tiers_temps = '45';
}
答案 1 :(得分:0)
你的命题没有错误。对象$ user引用表“user”而不是“user_has_examen”(之前没有descibe,那是正确的),因此用户不存在“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();
}
}
答案 2 :(得分:0)
当我发现自己处于这些情况时,我宁愿放弃多对多的表格识别并转移到这样的结构:
因为我觉得在你使用的结构中管理值tiers_temps非常不方便。