我的 Laravel 模型中有多态关系。如何在 Nova 中实现它们?

问题描述 投票:0回答:1

下面是实体结构

考试 -> 可以有“描述性问题”或“多项选择题”,具体取决于考试类型。

 public function questions()
    {
        switch($this->exam_type){
            case '1':
                return $this->hasMany('App\Exams\DescriptiveQuestion');
            case '2':
                return $this->hasMany('App\Exams\MultipleChoiceQuestion');
        }
    }

如何在nova中实现上述关系?

php laravel laravel-nova
1个回答
0
投票

试试这个:

在您的资源中

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.