php - Laravel 使用 Eloquent 插入数据有两个有很多关系

标签 php mysql laravel laravel-4 eloquent

我已经尝试了大约 10 次,但仍然无法做到。所以这就是我想做的。

我正在尝试插入一个有多个问题且每个问题都有多个选项的测验

测验 -- 有很多 --> 问题 -- 有很多 --> 选项

例如:

This is a Quiz?
    Question 1?
        Option 1
        Option 2
    Question 2?
        Option 1
        Option 2

我有 3 个表来存储测验问题和答案。所有这些都已正确链接,我能够毫无问题地获取和显示测验。

但我想插入一个测验。我知道如何插入数据与单个有很多关系,但完全不知道如何插入数据与 2 或更多有很多关系。

$quiz = new Quiz;
...
$quiz->save();
$questions = [new Question, new Question, ...];
$quiz->questions()->saveMany($questions);

我可以插入测验和与该测验相关的多个问题,但现在我还想为每个问题插入多个选项,例如 $options1、$options2 等.

我是 laravel 的新手。

最佳答案

你需要有这样的东西

class Quiz extends Eloquent {

    protected $table = "you table name here";

    public function questions() {
        return $this->hasMany("Question", "question_id", "id");
        //where Question is your model for questions table
    }

}

class Question extends Eloquent {

    protected $table = "you table name here";

}

$quiz = new Quiz;

//set quiz data here
// $quiz->name = "name";

$quiz->save();


for ($i = 0; $i < count($questions); $i++) {
    $arr[$i] = new Question;
    $arr[$i]->quize_id = $quiz->id;;
    // Set other data here
}

$quiz->questions()->saveMany($arr);

关于php - Laravel 使用 Eloquent 插入数据有两个有很多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26866700/

相关文章:

php - 使用 IF 语句与 MySql 和 PHP 错误

php - 如何在mysql中编写条件选择查询

php - Yiic 多数据库迁移

mysql - Laravel whereBetween 不起作用。表明?

laravel - 在 Laravel 迁移中删除外键

php - Laravel 通过电子邮件回复论坛

javascript - 使用 Knockout.JS 将 HTML 复选标记通过 JSON 传递到表中

mysql - Laravel Eloquent 多个 AND/OR 语句

mysql - 选择 mysql 子选择中的下一行

javascript - 如何从 javascript 中获取 Select HTML 中正确选择的值?