我想创建一个结构与模型的考试应用。
我可以想象的基本模型结构:
所以我想要一个这样的结构:
有许多问题,在问题表中,我想添加任何类型的模型来扩展my 问题模型,该模型总是包含两个参数(“问题”、“最大点”和其他为问题指定的字段)。
我想在open_questions.中添加试题表与试题表、试题表与closed_questions表和问句E 232之间的关系。
所以我试过的是:
我在考试中添加了每种问题类型的关系,模型,,,类似于:
Exams.php //Model
public function openQuestions()
{
return $this->morphedByMany(OpenQuestion::class, 'questions');
}
public function closedQuestions()
{
return $this->morphedByMany(ClosedQuestion::class, 'questions');
}我可以对模型进行手术,但我不认为这是一个理想的解决方案,或者应该让它保持原样。我认为有更好的方法来做这件事,但我对此并不熟悉。还是应该在所有问题类型的数组上添加一个变型关系?当我想用一个新的问题类型扩展应用程序时,它应该如何工作?
发布于 2022-03-07 07:13:51
如果要向Question添加条件关系,可以尝试以下方法
Exam::with(['Question' => function(MorphTo $morphTo){
$morphTo->morphWithCount([
ModelOne::class => ['openQuestions' => function($query){
$query->where('id',1);
}],
ModelTwo::class => ['closedQuestions']
]);
}]);在上面的代码中,我们检查嵌套模型多态模型是ModelOne catch openQuestions还是关系是ModelTwo catch closedQuestions关系,还可以为使用闭包分配约束。
https://stackoverflow.com/questions/71375316
复制相似问题