столбцы объединенной таблицы отсутствуют

Мне не хватает столбцов объединенной таблицы. У меня есть две таблицы, например:

t_q_filialen 1 --> n t_mandant

Я сделал оператор select в своей модели следующим образом:

    $select= new Select ();         //another try ('t_mandant','t_q_filialen');
    $select->columns(['id', 'cccid' ,'geschid', 'name', 'langname','filiale']);
    $select->from('t_mandant');
    $select->join('t_q_filialen', 't_q_filialen.id=t_mandant.geschid ', [ 'filialeid'=>'id','filiale'=>'name']);   

Я ожидал получить имя столбца с заданным псевдонимом «filiale», как это в моем сценарии просмотра:

$this->escapeHtml($mandant->filiale);

Я получаю сообщение об ошибке.

Неизвестный столбец «t_mandant.filiale» в «списке полей»

Если я вернусь к «geschid», который является столбцом внешнего ключа в таблице t_mandant, и попробую:

var_dump(get_object_vars($mandant));

столбцы из таблицы 't_q_filialen' отсутствуют в коллекции.

Что случилось?

У меня есть небольшая идея, что я мог бы быть чем-то с paginator. Я создаю экземпляр paginator следующим образом:

$resultSetprototype=new ResultSet();
$resultSetprototype->setArrayObjectPrototype(new Mandant());
$paginatorAdapter= new DbSelect($select, $this->tableGateway->getAdapter(), $resultSetprototype);
$paginator=new Paginator($paginatorAdapter);
return $paginator;

Как я могу изменить это, чтобы мое присоединение было принято? Может как-то связано с этим:

$resultSetprototype->setArrayObjectPrototype(new Mandant());

В других моделях без разбиения на страницы я использую этот, и он работает:

$rowset = $this->tableGateway->adapter->query($statment, "execute");

Итак, что может быть решением? Я действительно предпочел бы последнюю возможность, но я понятия не имею, как использовать ее в сочетании с paginator. Любая помощь приветствуется!

Я перечислил несколько идей, но моей целью было бы иметь столбцы обеих таблиц в моей коллекции с объектом paginator.


person pia-sophie    schedule 15.08.2018    source источник


Ответы (1)


о боже, я только что попробовал:

$paginatorAdapter= new DbSelect($select, $this->tableGateway->getAdapter());

Без прототипа набора результатов

person pia-sophie    schedule 15.08.2018
comment
Возможно, в вашем объекте «новый Mandant()» у вас нет этих полей? - person tasmaniski; 16.08.2018