Laravel | Как отобразить атрибуты, назначенные для продуктов в представлении категории - PullRequest
2 голосов
/ 20 февраля 2020

У меня проблема с запросом отношения. У меня в show.blade. php (категория):

@foreach( $attributes as $attribute)
 {{ $attribute->title }}
@endforeach

, а в функции CategoryController показано:

$attributes = Attribute::where('visible',1)
        ->orderBy('order', 'asc')
        ->with('products')
        ->get();

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

Моя модель связи: Категория 1: n Продукт N: (атрибут продукта pivot): N Атрибут

Идентификатор категории передается из представления. У меня также есть доступ к определенной категории c. Но как отобразить атрибуты товаров в этой категории. У вас есть идеи?

Ответы [ 2 ]

4 голосов
/ 20 февраля 2020

Предполагая, что у вас правильно определены отношения в моделях атрибутов и продуктов, вы можете использовать приведенный ниже запрос, чтобы получить атрибуты спецификаций c категории

$attributes = Attribute::with(['product.category'])->whereHas('product.category', function($q) use ($categoryId) {
  $q->where('id', $categoryId);
})->get();

Здесь product - это имя отношения, определенное в Атрибут модель и категория - это имя отношения, определенное в Продукт модель. id - это поле первичного ключа в таблице категории .

0 голосов
/ 20 февраля 2020

Большое спасибо!

$attributes = Attribute::with(['products.categories'])->whereHas('products.categories', function($q) use ($id) {
    $q->where('category_id', $id);
})->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...