Laravel 4.2 在数据透视表中同步多维数组 table
Laravel 4.2 Sync multidimensional array in pivot table
这些是我的 table 关系函数。
问题table
id
issueName
每一期都有多个问题
在Issue.php模型中
public function questions() {
return $this->hasMany('Question','issueID','id');
}
问题table
id
issueID
questionText
questionScore
每个问题都属于一个Issue,它有对应的分数
在Question.php模型中
public function issues() {
return $this->belongsTo('Issue');
}
我使用无线电输入为每个问题选择一个问题,并获取一个问题 ID 数组,分数旨在保存在数据透视表中 table。
评估table
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 table
id
assessmentsID
questionID
score
当我尝试同步问题 ID 时,使用
得分为 assessments_question_score table
$assessments = New Assessment;
...
...
$assessments->save();
$assessments->scores()->sync($questionIDscore);
但它不起作用,同步多维数组是错误的还是我遗漏了什么?我怎样才能做到这一点?
Assessment.php
public function questions() {
return $this->belongsToMany('Question','assessments_question_score','assessmentsID','questionID');
}
Question.php
public function assessments() {
return $this->belongsToMany('Assessment','assessments_question_score','questionID','assessmentsID'););
}
然后您可以像这样将问题与评估联系起来:
$questionIds = array(2,5,6);
$assessment = new Assessment;
$assessment->save();
$assessment->questions()->sync($questionIds);
然后将 ID 为 2、5 和 6 的问题连接到评估。
获取第一题分数:
$questionScore = $assessment->questions()->first->questionScore;
获取所有问题的总分:
$totalScore = $assessment->questions()->sum('questionScore');
求所有问题的平均分:
$averageScore = $assessment->questions()->avg('questionScore');
来源:http://laravel.com/docs/4.2/eloquent#many-to-many
同时搜索 'sync'.
这些是我的 table 关系函数。
问题table
id
issueName
每一期都有多个问题
在Issue.php模型中
public function questions() {
return $this->hasMany('Question','issueID','id');
}
问题table
id
issueID
questionText
questionScore
每个问题都属于一个Issue,它有对应的分数
在Question.php模型中
public function issues() {
return $this->belongsTo('Issue');
}
我使用无线电输入为每个问题选择一个问题,并获取一个问题 ID 数组,分数旨在保存在数据透视表中 table。
评估table
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 table
id
assessmentsID
questionID
score
当我尝试同步问题 ID 时,使用
得分为 assessments_question_score table$assessments = New Assessment;
...
...
$assessments->save();
$assessments->scores()->sync($questionIDscore);
但它不起作用,同步多维数组是错误的还是我遗漏了什么?我怎样才能做到这一点?
Assessment.php
public function questions() {
return $this->belongsToMany('Question','assessments_question_score','assessmentsID','questionID');
}
Question.php
public function assessments() {
return $this->belongsToMany('Assessment','assessments_question_score','questionID','assessmentsID'););
}
然后您可以像这样将问题与评估联系起来:
$questionIds = array(2,5,6);
$assessment = new Assessment;
$assessment->save();
$assessment->questions()->sync($questionIds);
然后将 ID 为 2、5 和 6 的问题连接到评估。
获取第一题分数:
$questionScore = $assessment->questions()->first->questionScore;
获取所有问题的总分:
$totalScore = $assessment->questions()->sum('questionScore');
求所有问题的平均分:
$averageScore = $assessment->questions()->avg('questionScore');
来源:http://laravel.com/docs/4.2/eloquent#many-to-many 同时搜索 'sync'.