amio
@amio
Newbie web-developer)

Yii2 Как сделать так, чтобы не писать запросы к бд из вида в конкретном примере?

Здравствуйте.
Просьба помочь, не могу понять как сделать так, чтобы не писать запросы к бд из вида (понимая что так не делается).

Есть три таблицы:
1. Таблица с услугами – service (поля – id, название, описание и тд)
2. Таблица с работами портфолио – portfolio (поля – id, название, описание и тд)
3. Таблица для привязывания конкретной работы из портфолио к услуге – service_portfolios(поля id, id_service, id_portfolio)

Мне нужно вывести на определенной странице все работы которые привязаны к какой-то конкретной услуге. Не используя виды, во время отладки, выводя данные прямо из контроллера все сделал, работает, вот таким кодом:

public function actionTest($service)
    {

        $service_portfolios = ServicePortfolio::find()->where(['id_service' => $service])->all();

        foreach ($service_portfolios as $sp) {
            $work = Portfolio::find()->where(['id' => $sp->id_portfolio])->one();
            debug($work->title);
        }

    }


Но как сделать так передав все в вид, чтобы не делать из него запрос к бд понять не могу(
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Snewer
В модели ServicePortfolio объявите связь:
public function getPortfolio(){
  return $this->hasOne(Portfolio::className(), ['id' => 'id_serice']);
}

а где нужно получить эти записи воспользуйтесь:
$sp->portfolio
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы