如何为模型关系添加if条件

时间:2018-02-08 16:23:22

标签: laravel laravel-5.5

我在基于类型的表中有一个id。

我想要做的是根据列值返回关系

public function to(){
    if($this->type === 0){
        return $this->hasOne("App\Model\X", "id","created_by");
    }else{
        return $this->hasOne("App\Model\Y", "id","to_id");
    }
}

1 个答案:

答案 0 :(得分:2)

这是polymorphic relationships的目的。具有不同列值的模型可以morphTo相关类型。

  

多态关系允许模型在单个关联上属于多个其他模型。例如,假设您的应用程序的用户可以“评论”帖子和视频。使用多态关系,您可以对这两种方案使用单个注释表。