gpt4 book ai didi

php - 如何在 Laravel 中插入基于嵌套数组的关系?

转载 作者:行者123 更新时间:2023-11-29 02:51:55 24 4
gpt4 key购买 nike

我有 3 个表 testsquestionsoptions

如你所想

  1. 一个测试有很多问题
  2. 一个问题属于一个测试
  3. 一个问题有很多选项
  4. 一个选项属于一个问题

这些关系已经在模型中建立起来了。

我以这种形式从前端获取数据:

array:3 [
"name" => "First Test"
"preparation" => "First Test prep"
"questions" => array:2 [
0 => array:2 [
"title" => "Some question"
"options" => array:4 [
0 => "a"
1 => "b"
2 => "c"
3 => "d"
]
]
1 => array:2 [
"title" => "Another question"
"options" => array:4 [
0 => "e"
1 => "f"
2 => "g"
3 => "h"
]
]
]
]

此数据完美地代表了这些关系。事实上,如果我使用的是 NoSql 数据库,我会简单地将其存储在数据库中。

我的问题是“在 Laravel 中使用 Eloquent 时,一次存储所有这些数据的最佳方式是什么”?

注意:是Laravel集合的形式。

最佳答案

 class Test extends Model {

$table = 'tests';
function questions(){
return $this->hasMany(Question::class, 'test_id');
}

}

class Question extends Model {

$table = 'questions';
function answers(){
return $this->hasMany(Answer::class, 'question_id');
}

function test(){
return $this->belongsTo(Test::class, 'test_id');
}

}

class Answer extends Model {

$table = 'answers';

function question(){
return $this->belongsTo(Question::class, 'question_id');
}

}

当然我只展示了关系、表和外键。您可以向模型中添加任何其他数据。

关于php - 如何在 Laravel 中插入基于嵌套数组的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com