Мне не хватает столбцов объединенной таблицы. У меня есть две таблицы, например:
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.