如何在允许空关系的情况下实现动态关系?

时间:2020-04-24 14:07:35

标签: php laravel eloquent polymorphic-associations

我要实现的是一个名为“问题”的表的多态关系

Quesions
-------------
id
title
description
type
metadata_type
metadata_id

Question可以是text-type-questionchoice-questionopinion-scale这三种类型。 text-type-question没有任何关系表,它仅需要基本的标题和描述字段。但另外两个需要Extra元数据,该元数据位于另外两个表中,它们的模型在metadata_type

中指定

我想做的是

class SurveyQuestion extends Model
{
    public function metadata()
    {
      return $this->hasOne(app($this->metadata_type));
    }
}

这将返回元数据,但我的text-type-question没有任何关系表,即$this->metadata_type为空。这样会引发错误。

有什么方法可以通过检查类型条件来返回空关系吗?

0 个答案:

没有答案