我有3个表tests
,questions
,options
。
你可以想象
这些关系已在模型中设置。
我以这种形式从前端获得了数据:
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"中使用雄辩的同时,一次存储所有这些数据的最佳方法是什么?
注意:这是Laravel系列的形式。
答案 0 :(得分:1)
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');
}
}
当然我只展示了关系,表格和外键。 您可以向模型添加任何其他数据。
答案 1 :(得分:0)
您必须从给定数据创建模型对象的结构。 JMS Serializer是一个很棒的库,它有laravel integration。