Zend | Db \ Sql | Выражение не работает в операторе Zend SL

Я не могу получить действительные данные из приведенных ниже SQL-инструкций Zend Framework, которые я использую в php и вызывается из сценария angularjs:

    $where = new Where ();
$where->greaterThanOrEqualTo('user_id', '963');
$resultSet = $this->tableGateway->select(function(Select $select) use
($where){
$select->where($where);
$select->columns(array('date_added','datemonth' => new \Zend\Db\Sql\Expression("MONTH('date_added')"), 'count' => new \Zend\Db\Sql\Expression("COUNT(*)")));
$select->group('datemonth');
return $resultSet;

Мой угловой скрипт js выводит данные, как показано ниже:

    success(function(response) {

for(var i in response.response) {
var tc = response.response[i];
alert("userdata date_added=" + tc['date_added'] + " datemonth=" + tc['datemonth'] + " count=" + tc["count"]);
}

И результаты как показано:

userdata date_added=2014-05-22 20:00:27 datemonth=undefined count=undefined

Может кто-нибудь сказать мне, если я неправильно использую выражение Zend \ Db \ Sql \ Expression или почему дата-месяц и число возвращаются неправильно? Я хочу иметь возможность получить количество записей по месяцам.

Обновление: мне удалось вывести вывод с сервера, и он показывает все поля в записи базы данных, но не для полей, созданных в функциях выражения Zend для datemonth и count. Ниже находится свалка. Кто-нибудь знает, почему поля Expression отсутствуют в дампе?

Код php:

       echo "Resultset = " . $resultSet->date_added;

Дамп вышеуказанного кода:

       Resultset = {"success":true,"response":[{"inputFilter":null,"user_id":0,"instagram_user_id":"","fbid":"","instagram_username":null, "full_name":"","profile_image":"","bio":"","website":"","media_count":0,"following_count":0,"followed_by_count":0,"like_count":0,"recommend_count":0,"date_added":"2014-05-22 20:00:27","flag_count":0,"date_updated":"","email":"","password":"","access_token":"","premium":0,"login_attempts":0,"status":0,"request_count":0,"request_date":""}]}

0

Решение

Вы можете попробовать это для предварительного просмотра вашего SQL-запроса:

$sql = new \Zend\Db\Sql\Sql($this->tableGateway->adapter);
echo $sql->getSqlStringForSqlObject($select);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector