【问题标题】:Laravel Model Relationship. which one?Laravel 模型关系。哪一个?
【发布时间】:2017-01-20 11:57:17
【问题描述】:

嘿,所以我应该首先说我得到了这个数据库来使用。所以不确定他们使用的是什么关系。我最终需要做的是获取分配给文章的类别名称。

基本上看起来像这样articles <> article_categories <> categories

article_categories 是连接器

文章 |ID|header|body|ect...|

类别 |ID|parent_group|name|

article_categories |article_id|category_id|

所以我认为可能是hasManyThrough,但只有错误。这也可能是我的论点做错了。

我首先尝试的是在文章模型内部(由此出现错误)

public function category(){ return $this->hasManyThrough('App\categories' , 'App\article_categories' ,'article_id' , 'category_id'); }

希望我解释一下我的情况。我需要使用has many through 还是我过于复杂了?

-谢谢

【问题讨论】:

    标签: php laravel model rss relationship


    【解决方案1】:

    不需要hasManyThrough

    belongsToMany 是您所需要的。

    public function category(){
        return $this->belongsToMany('App\categories' , 'article_categories' ,'article_id' , 'category_id');
    }
    

    【讨论】:

      【解决方案2】:

      在您的 article_categories 模型中试试这个

      为类别创建函数

      public function categories(){
        return $this->belongsTo('App\Categories' , 'category_id');
      }
      

      文章也是如此

      public function articles(){
        return $this->belongsTo('App\Articles' , 'article_id');
      }
      

      只是一个建议,对模型使用单数,我不知道是否可以为迁移说“复数”:

      迁移:文章,模型:文章

      同样的

      迁移:类别,模型:类别

      希望对您有所帮助!祝你好运

      【讨论】:

        猜你喜欢
        • 2018-04-15
        • 2014-04-02
        • 2018-12-07
        • 2018-12-29
        • 2019-04-04
        • 2018-12-11
        • 1970-01-01
        相关资源
        最近更新 更多