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'.