Выберите из двух таблиц и покажите все в laravel

Я хочу показать на странице данные из двух таблиц, но с небольшим условием, и я не могу понять, как это сделать в Laravel 4.

Итак, у меня есть таблица categories и таблица products. В настоящее время я показываю все категории на странице, и проблем нет. Проблема в том, что теперь будут продукты без категории, и я хочу зациклить их также на странице.

Когда администратор создает продукт, он выбирает категорию, но если ничего не выбирает, он сохраняет 1 по умолчанию в базе данных products столбец single_product.

Это модель продукта

public function categories()
{
    return $this->hasMany('Categories', 'category_id');
}

И модель категорий

public function products()
{
    return $this->hasMany('Product', 'category_id');
} 

public function lowestProduct() {
    return $this->products()->selectRaw('*, max(price) as aggregate')
    ->groupBy('products.product_id')->orderBy('aggregate');
}

И это вид

    <div class="col-xs-8 text-left" style="margin-top: 9px">
        @if($category['no_category'] == 0)
            Price: <strong>{{ $category->products()->min('price') }} $</strong>                         
        @else
            Price from: <strong>{{ $category->products()->min('price') }} $</strong> 
         @endif
    </div>

Как выбрать столбец single из таблицы products и показать их на странице вместе с названием категорий?


person Jason Paddle    schedule 01.07.2016    source источник


Ответы (1)


Тогда нет категории. Избегайте своего класса категории и просто извлекайте напрямую из класса продукта. Создайте функцию, например:

public function singleItems()
{
   return $this->where("single_product", 1)->get();

}

Затем вы получаете результат. Пожалуйста, проверьте это для получения дополнительной информации:

https://laravel.com/docs/5.1/eloquent-collections

Я знаю, что выше для другой версии laravel, чем ваша, но я думаю, что это должно работать. Остальное подскажите, тогда буду искать дальше.

person Aprilsnar    schedule 03.07.2016
comment
В какой файл я должен поместить это .. в модель продукта? И как их тогда узнать? - person Jason Paddle; 03.07.2016
comment
Вы должны указать их в файле просмотра или файле маршрутов. Вы можете сделать то же самое с категориями. - person Aprilsnar; 03.07.2016
comment
Спасибо! Думаю, я понял. Я поместил его в домашний контроллер + второй контур, на мой взгляд. - person Jason Paddle; 03.07.2016