2016-09-13 6 views
1

Эй, я должен начать с того, что мне дали эту БД для работы. поэтому не уверен, какие отношения они использовали. В конечном итоге мне нужно будет получить название категорий, присвоенных статьям.Laravel Model Relationship. который из?

в основном это выглядит как это 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, или я слишком усложняю это?

-Спасибо

ответ

0

нет необходимости для hasManyThrough

belongsToMany является то, что вам нужно.

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

Попробуйте это в вашей модели article_categories

Создание функции для категорий

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

И то же самое для статей

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

И просто совет использовать в единственном числе для моделей и я не знаю, можно ли сказать «множественное число» для МИГРАЦИЙ:

МИГРАЦИИ: Статьи, МОДЕЛЬ: Статья

то же самое для

МИГРАЦИИ: Категории, МОДЕЛЬ: Категории

Надеется, что это может помочь вам! Удачи