当前位置:  开发笔记 > 编程语言 > 正文

如何在使用接口时定义关系

如何解决《如何在使用接口时定义关系》经验,为你挑选了0个好方法。

Post - User - Image示例很好地涵盖了Laravel中多态关系的正常使用.

我正试图找到一种干净的方式来实现关系,让我们说Article/ContentA/ContentB关系.

articles
  id

content_1
  id

content_2
  id

user_defined_content_n
  id

contentables
  article_id
  contentable_id
  contentable_type // content_2, user_defined_content_n

内容类不一定是本文所知的,因此定义具有许多MorphedByMany关系的文章模型不是我想要这样做的方式.

也许我正在很好地构建我的课程.我可以创建一个ContentEntity变形为单个Content类的类,但如果可能的话我想避免这种情况.


也许这更能解释我的问题.

class Article extends Model {
    public function contentEntities() {
        return $this->hasMany(ContentEntity::class);
    }
}

class ContentEntity extends Model {
    public function contentable() {
        return $this->morphTo();
    }
}

class Content extends Model {
    public function contentEntity() {
        return $this->morphOne(ContentEntity::class, 'contentable');
    }
}

class Video extends Model {
    public function contentEntity() {
        $this->morphOne(ContentEntity::class, 'contentable');
    }
}

这有效,但对我来说似乎非常不洁净.我认为它必须增​​加太多的开发人员开销才能管理ContentEntity父级.

编辑: 除非有人提供更好的解决方案,否则我选择了使用ContentEntitys 的EAV风格解决方案.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有