• Yii2 ActiveQuery::joinWith() не получается выбрать поля из связанной таблицы?

    @buildok Автор вопроса
    Через var_dump обнаружил, что поля из связанной таблицы все же возвращаются во вложенном массиве ['artStatus']. По какой-то причине ActiveDataProvider вложенные массивы в JSON не добавляет.
    Нашел решение, используя SqlDataProvider:
    $count = $model->find()
       ->joinWith('artStatus')
       ->andWhere('{{status}}.code = :code', [':code' => $code])
       ->count();          	
    
    return new SqlDataProvider([
       'totalCount' => $count,
       'params' => [':code' => $code],
       'sql' => '
              SELECT article.*, status.code, status.descr AS sdescr
              FROM article
              LEFT JOIN status ON article.id_status = status.id
              WHERE status.code = :code'
    ]);


    Но этот SQL в контроллере мне совсем не нравится. Поэтому создал представление в MySQL, в котором все нужные поля из связанных таблиц. К этому представлению модель и все, можно обойтись без joinWith и т.п.
    Ответ написан
    Комментировать