Как посчитать значения столбцов таблицы и распечатать в блейд-файле laravel 5.6 - PullRequest
0 голосов
/ 24 сентября 2018

Я работаю с laravel 5.6, и у меня есть таблица с именем vehicles со столбцами categoryname:

id   number  categoryname
1    123       Car
2    589       Van
3    589       Car
4    563       SUV
5    563       Van

Теперь у меня есть следующий blade просмотр в welcome.blade.php:

<img src="{{URL::asset('/images/car.png')}}" alt="profile Pic" height="50" width="50" class="center-block">
                        <div>Car</div>

                        <div>text text text texttext texttext texttext text trtrttr rrttrtr rrtrttr rtrtrttrtr rtrttrtr rrtrttr rrtrtr</div>
                        </div>
                        <div class="col-md-3 text-center">
                        <img src="{{URL::asset('/images/van.png')}}" alt="profile Pic" height="50" width="50" class="center-block">
                        <div>Van</div>

                        <div>text text text texttext texttext texttext text trtrttr rrttrtr rrtrttr rtrtrttrtr rtrttrtr rrtrttr rrtrtr</div>
                        </div>

Моя проблема в том, что теперь мне нужно подсчитать одинаковые значения в столбце categoryname и напечатать их следующим образом в welcome.blade.php.

<div>Car</div>
<div>2</div>

<div>Van</div>
<div>3</div>

etc...

У меня есть следующий контроллер для подсчета значений столбца:

$names = Vehicle::groupBy('categoryname')->select('id', 'categoryname', \DB::raw('COUNT(*) as cnt'))->get(); 

Он работает, но мне нужно print его значения для транспортных средств categories в файле лезвия.

Как мне этого добиться?

Изображение weicome.blade.php file here

надеюсь сделать это динамически с отношением У меня есть 2 модели в категории и транспортные средства со следующими отношениями Категория

public function vehicles()
    {
        return $this->hasMany(Vehicle::class);
    }

public function category()
    {
        return $this->belongsTo(Category::class);
    }

и имя таблицы категорий выглядит следующим образом

id   categoryname   images
1   Car             car.png
2   Van             van.png
3   SUV             suv.png
etc

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

1 Ответ

0 голосов
/ 24 сентября 2018

Добавить groupBy() в контроллере:

$names = Vehicle::groupBy('categoryname')->select('id', 'categoryname', \DB::raw('COUNT(*) as cnt'))->get()->groupBy('categoryname');

В Blade:

@foreach($names as $key => $name)
    <div class="col-md-3 text-center">
        <img src="{{ URL::asset('/images/'.$name->images) }}" alt="{{ $key }}" height="50" width="50" class="center-block">
        <div>{{ $key }} ({{ $name->count() }})</div>
        <div>text text text text</div>
    </div>
@endforeach

* Сохранить имя изображения таким же, как имя категории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...