Внешний ключ laravel eloquent

У меня есть таблицы с иностранным ключом, у которых есть еще один иностранный ключ к другой таблице, и мне нужно присоединиться к красноречивым этим 3 таблицам.

У меня есть таблицы:

Films
 - ID
 - FilmsName
FilmsTags
 - FilmID
 - TagID
Tags
 - ID
 - Tagname

В режиме Eloquent у меня есть:

Films
 public filmstags_items(){
   return $this->hasMany(FilmsTags::class, 'FilmID', 'id');
 }

FilmsTags
 public film_item(){
  return $this->hasOne(Films::class, 'id', 'FilmID');
 }

 public tag_item(){
  return $this->hasOne(Tags::class, 'id', 'TagID');
 }

Tags
 public filmstags_items(){
  return $this->hasMany(FilmsTags::class, 'TagID', 'id');
 }

Могу ли я сделать что-то подобное на своих красноречивых модельных фильмах, чтобы присоединиться к столам?

public join_all(){
  return $this->hasMany(FilmsTags::class, 'FilmID', 'id')->hasOne(Tags::class, 'TagID', 'id');
}

Если нет, скажите, пожалуйста, как это сделать красноречиво. Я знаю, что могу составить предложение соединения с помощью SQL, но я хочу научиться красноречиво.

Спасибо.

прочтите документы laravel. Примечание: модель должна быть в единственном числе.

Ariel Pepito 10.08.2018 16:55

Связь между Film и Tag (единичные названия моделей) должна быть belongsToMany(), при этом FilmTag является промежуточной (сводной) таблицей, для которой модель не требуется. Прочтите документы здесь: laravel.com/docs/5.6/eloquent-relationships#many-to-many

Tim Lewis 10.08.2018 16:57

Чтобы использовать запрос, вы можете использовать $ film-> with ('filmstags_items.tagitem') -> get () вернет коллекцию фильмов с тегами film с tagitem

itepifanio 10.08.2018 17:04
0
3
49
0

Другие вопросы по теме