Как убрать экранирование в sql-запросе в ZF2?

Собственно проблема заключается в том, что на выходе получается запрос с экранированием всех названий полей, алиасов и т.д., и это не позволяет добавить новое значение на выходе.
О чем речь:
пример запроса в zf2
$sql = new Sql(<адаптер>);
$select = $sql
                ->select()
                ->from(array('v' => 'video'))
                ->columns(array('id','title'))

на выходе получится что-то типа:
SELECT `v`.`id`, `v`.`title` FROM `video` AS `v`
Но если появляется необходимость добавить в select новое значение 'video' AS 'cat'
->columns(array('id','title', "'cat'" => "'video'"))
- так нельзя.
ZF2 экранирует эти значения вместе с кавычками, что является ошибкой, т.к. пытается найти поле "cat" в БД
как сгенерировать запрос правильно, чтобы не экранировало эти значения?
SELECT `v`.`id`, `v`.`title`, 'video' AS 'cat' FROM `video` AS `v`
- что должно быть на выходе
  • Вопрос задан
  • 2672 просмотра
Решения вопроса 1
@yvm
->columns(array('id','title',
  'cat' => new \Zend\Db\Sql\Expression('video'),
))


Оно?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
igontarev
@igontarev Автор вопроса
данную проблему можно решить, добавив метод
->quantifier("'video' AS 'cat',")
однако это не является решением всех трудностей, связанных с экранированием, есть еще решения?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы