Внешний ключ 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
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
49
0

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