Laravel красноречиво, как отображать данные из 2 таблиц

У меня 2 стола, товар и продвижение. Я не знаю, как я могу отобразить цену продукта и рекламной акции (цена после скидки) на основе product_id в лезвии. В колонке я могу отображать цену только для продвижения, используя {{$ promotion-> price}}.

Таблица продуктов

id - имя - цена

Таблица продвижения

id product_id - цена - скидка

Контроллер:

 $latestProduct = Promotion::orderBy('created_at', 'desc')
    ->with('product')
    ->take(20)
    ->get();

Модель:

  1. Модель продукта

    public function promotion()
    {
       return $this->hasMany('App\Model\Promotion');
    }
    
  2. Модель продвижения

    public function product()
    {
        return $this->belongsTo('App\Model\Product');
    }
    
Стоит ли изучать 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
0
426
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

в файле лезвия:

Редактировать:

@foreach($latestProduct as $product)
    {{$product->price}}
    {{$product->promotion->price}}
@endforeach

должно сработать.

Думаю, лучше будет сделать вот так:

$latestProducts = Product::orderBy('created_at', 'desc')
->with('promotion')
->take(20)
->get();

И, как уже упоминал Али Озен, в своем файле лезвия вы сможете перебирать свои продукты и получать рекламную цену продукта с помощью:

$product->promotion->price

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