Как получить данные из сводной таблицы внутри отношения «многие к одному» в laravel 5.6

У меня есть 3 имени таблицы, такие как "product", "user", "product_type", поэтому в моем случае user и product_type, имеющие отношения «многие ко многим» и пользователь и продукт, имеющие отношение один ко многим и product и product_type имеют отношение один к одному.

Я создаю одну сводную таблицу для пользователя и product_type. внутри этой сводной таблицы я добавил еще один столбец для описания. поэтому на странице со списком продуктов мне нужно отобразить описание из этой сводной таблицы.

Мой код выглядит так:

Product::with('user)->with('product_type')->get();

Вы имеете в виду, что «пользователь и product_type имеют отношения «многие ко многим»» или вы имеете в виду, что у вас также есть таблица account_type?

piscator 19.02.2019 10:57

извините, я имею в виду product_type, на самом деле Product::with(['user'=>function($q){$q->with('product_type')‌​}])->with('product_t‌​ype')-> получить(); приведенный выше код предоставляет данные сводной таблицы. Но мне нужно заполнить файл, используя product_type_id.

midhun prakash 19.02.2019 11:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
2
240
1

Ответы 1

Чтобы получить дополнительные поля из сводной таблицы, вам нужно использовать withPivot в функции вашей модели. Вот так:

public function product_type() {
      return $this->belongsToMany('App\Product','product_type','product_id','user_id')->withPivot('column1', 'column2');
    }

вы также можете сослаться на документацию laravel:

https://laravel.com/docs/5.7/eloquent-relationships

Я уже все сделал, и я получаю данные с помощью этого запроса. на самом деле Product::with(['user'=>function($q){$q->with('product_type')‌​}])->with('product_t‌​ype')->get(); приведенный выше код предоставляет данные сводной таблицы. Но мне нужно заполнить файл, используя product_type_id. В настоящее время я управляю этими вещами из внешнего интерфейса.

midhun prakash 19.02.2019 13:12

Прежде всего используйте этот способ для получения данных => Product::with('user.product_type')->get(); А можешь объяснить, что именно ты хочешь?

Kinjal Vithalani 19.02.2019 13:36

Я получаю все типы продуктов и связанные с ними сводные данные под пользователем. Мне нужно получить один тип продукта, связанный с этой таблицей продуктов. NB: product и product_type имеют отношение один к одному, таблица product имеет product_type_id

midhun prakash 19.02.2019 14:32

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