下面是实体结构
考试 -> 可以有“描述性问题”或“多项选择题”,具体取决于考试类型。
public function questions()
{
switch($this->exam_type){
case '1':
return $this->hasMany('App\Exams\DescriptiveQuestion');
case '2':
return $this->hasMany('App\Exams\MultipleChoiceQuestion');
}
}
如何在nova中实现上述关系?
试试这个:
在您的资源中
public function fields(Request $request)
{
return array_merge([
// another fields
$this->questionsFields()
]);
}
public function questionsFields()
{
$fields = [];
if ($this->exam_type == 1) {
$fields[] = HasMany('Descriptive Question', 'questions', DescriptiveQuestion::class);
} else {
$fields[] = HasMany('Multiple Choice Question', 'questions', MultipleChoiceQuestion::class);
}
return $fields;
}