Как сформировать запрос в базу данных

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
nameless_python
Сообщения: 21
Зарегистрирован: 2019.12.13, 00:18

Как сформировать запрос в базу данных

Сообщение nameless_python »

Здравствуйте! Имеется страница со списком марок автомобилей. Нужно отобразить при выводе этой страницы напротив каждой из марок количество моделей авто, относящихся именно к ней.

Контроллер:

Код: Выделить всё

public function actionBrand()
    {
        $brands = Brand::find()->all();

        return $this->render('brand', [
            'brands' => $brands,
        ]);
    }
Вывод списка в view:

Код: Выделить всё

<?php foreach ($brands as $brand): ?>

    <p><a href="<?= Url::to(['site/model', 'slug' => $brand->slug]); ?>"><?= $brand->title; ?></a></p><!--где-то здесь нужно вывести кол-во моделей из базы-->

<?php endforeach; ?>
Не прошу писать код за меня, но хочу попросить у Вас совета, как в таких случаях поступают и какая практика наиболее рациональна для решения такой задачи? Буду признателен, если дадите ссылку на материал.
unknownby
Сообщения: 749
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Как сформировать запрос в базу данных

Сообщение unknownby »

Внутри модели Brand должна быть связь hasMany с моделью "Модели авто".
Вот и делаем

Код: Выделить всё

$brand->getModelAuto()->count()
Для альтернативы

Код: Выделить всё

count($brand->modelAuto)
nameless_python
Сообщения: 21
Зарегистрирован: 2019.12.13, 00:18

Re: Как сформировать запрос в базу данных

Сообщение nameless_python »

unknownby писал(а): 2020.07.07, 14:44 Внутри модели Brand должна быть связь hasMany с моделью "Модели авто".
Вот и делаем

Код: Выделить всё

$brand->getModelAuto()->count()
Для альтернативы

Код: Выделить всё

count($brand->modelAuto)
Спасибо большое!
Закрыто