zf2 - присоединиться, используя Zend\Db\TableGateway\TableGateway;
Я хочу сделать простое соединение, используя zf2, выбирая поля из первой и второй таблиц, но я получаю ошибку ("Оператор не может быть выполнен"), когда я пытаюсь поместить массив полей в метод столбцов.
public function fetchAll()
{
$resultSet = $this->tableGateway->select(function (Select $select) {
$select->columns();// ->with params gives an 'Statement could not be executed'
$select->join(array('t2' => 'categories'), 'table1.idCategory = t2.id');
$select->order('dateTime DESC')->limit(100);
});
...
}
2 ответа
Либо прокомментируйте это утверждение, либо добавьте хотя бы одно допустимое имя "столбца" в массив (столбец таблицы / имя поля).
$select->columns(array('column_one', 'column_two', 'column_N'));
Пустой $select->columns();
оператор генерирует SQL-запрос что-то вроде SELECT FROM table_name
что приводит к ошибке.
Когда вы комментируете это утверждение, он генерирует SQL-запрос, как SELECT * FROM table_name
и если вы передаете имена столбцов, звездочки заменяются ими.
Вам нужно убедиться, что поля dateTime/id находятся в предоставленном вами списке столбцов.
Если вы выбросите исключение ($e->getTraceAsString()), вы получите дополнительную информацию о том, что является причиной вашей ошибки.