【发布时间】:2015-03-30 10:18:03
【问题描述】:
这些是我的带有关系函数的表格。
问题表
id
issueName
每个问题都有多个问题
在Issue.php模型中
public function questions() {
return $this->hasMany('Question','issueID','id');
}
问题表
id
issueID
questionText
questionScore
每个问题都属于一个Issue,都有对应的分数
在 Question.php 模型中
public function issues() {
return $this->belongsTo('Issue');
}
使用无线电输入,我为每个问题选择一个问题,并获取一个 questionID 数组,用于保存在数据透视表中的分数。
评估表
id
totalScore
在 Assessment.php 模型中
public function scores() {
return $this->belongsToMany('Question','assessments_question_score','assessmentsID','id');
}
在 Question.php 模型中
public function assessments() {
return $this->belongsToMany('Assessment');
}
assessments_question_score 表
id
assessmentsID
questionID
score
当我尝试同步 questionID 时,使用
为assessions_question_score 表评分$assessments = New Assessment;
...
...
$assessments->save();
$assessments->scores()->sync($questionIDscore);
但它不起作用,同步多维数组是错误的还是我缺少的其他东西?我怎样才能做到这一点?
【问题讨论】:
-
为什么关联函数中有“table”? return $this->belongsToMany('Question','assessments_question_score table','assessmentsID','id');应该是:return $this->belongsToMany('Question','assessments_question_score','assessmentsID','id');
-
你用这个作为 questionIDscore 吗?数组(1 => 数组('score' => 10))
-
另外,您没有在 belongsToMany 语句中指定枢轴。 return $this->belongsToMany('Question','assessments_question_score','assessmentsID','id')->withPivot('score');
-
我认为这是一个错字,但不是在我的源代码中
-
$questionIDscore 是 questionID 和 score 的数组,所以如果我添加 withPivot('questionID', 'score');它适用于 $assessments->scores()->sync($questionIDscore);
标签: laravel-4 pivot-table