SQL Join в ZF3 Expressive - ResultSet не дает объединенные столбцы

Я пытаюсь получить заголовок из второй таблицы (путем левого соединения), но мой resultSet не доставляет столбец объединенной таблицы.

Вот так выглядит мой TableGateway:

 public function fetchCourseListWithStudyprogram()
{
        $select = $this->getSql()->select();
        $select->where->equalTo('course_active', 'Y');
        $select->join('studyprogram', 'studyprogram.studyprogram_id = course.studyprogram_id', ['studyprogram_title'], $select::JOIN_LEFT);

    $resultSet = $this->selectWith($select);
    var_dump($resultSet);
    return $resultSet->toArray();
}

Заявление строится так, как должно быть:

public 'queryString' => string 'SELECT `course`.*, `studyprogram`.`studyprogram_title` AS `studyprogram_title` FROM `course` LEFT JOIN `studyprogram` ON `studyprogram`.`studyprogram_id` = `course`.`studyprogram_id` WHERE `course_active` = :where1' (length=214)

Когда дело доходит до получения результатов, он игнорирует столбец "studyprogram_title", я думаю, это из-за заданного resultSet (с привязанным CourseEntity)

Есть ли способ показать studyprogram_title, не добавляя его в CourseEntity? Это на самом деле не часть этого, так что я думаю, это грязно, если я добавлю это туда.

1 ответ

Существует способ обработки двух таблиц в модели.

Если вы хотите объединить две таблицы напрямую без указания tablegateway тогда для каждой таблицы возникнет проблема. Это означает, что вы не можете сделать resultset в массив, потому что, в этом случае, вы не используете resultsetprototype для другой таблицы, как вы делаете для одной (текущей модели), где вы пытаетесь объединить две таблицы.

Вы можете проверить этот ответ!

Другие вопросы по тегам