Идентификатор цвета выбирается из таблицы productcolours, но как узнать название цвета из таблицы цветов - PullRequest
1 голос
/ 04 февраля 2020
$product = Products::where('product_slug', $slug)->first();
$productcolours = Productcolour::all()->where('product_id', $product->id);
$colour = Colour::all();

product.blade

@foreach($productcolours as $productcolour)
{{$productcolour->color_id}}
@endforeach

Выбрать название цвета

Ответы [ 2 ]

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

Добавьте приведенный ниже код в модель вашего продукта

public function color()
{
    return $this->hasOne('App\Productcolour', 'id', 'color_id');
}

Приведенный выше код будет работать, когда таблица вашего продукта color_id будет совпадать с таблицей цветов id

, чтобы показать ее во внешнем интерфейсе ниже код (1 - идентификатор продукта, используйте ваш динамический c идентификатор $product->id)

{{Products::find(1)->color}}

или в контроллере $colour = Products::find(1)->color;

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

Вы должны иметь возможность установить ownToMany отношения между Products и Colour, например, добавьте следующее к вашей Products модели (если она еще не существует):

public function colors()
{
    return $this->belongsToMany(Color::class);
}

Не видя определения вашей таблицы, я не смог бы сказать наверняка, что приведенный выше код будет работать как есть. В настоящее время предполагается, что вы следовали стандартному соглашению Laravel о присвоении имен.

Тогда вы просто сможете загрузить отношения:

$product = Products::with('colors')->where('product_slug', $slug)->first();
@foreach($product->colors as $color)
    {{ $color->name }}
@endforeach

Просто к сведению, в будущем я бы рекомендовал фильтровать с использованием базы данных, а не извлекать все записей и затем фильтровать их, т.е.

this:

$productcolours = Productcolour::all()->where('product_id', $product->id);

станет:

$productcolours = Productcolour::where('product_id', $product->id)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...