Symfony: execute () возвращает массив? - PullRequest
1 голос
/ 27 июля 2011
<?php 
  $result = $query->execute()
  gettype($result); //output: object 
?>

Почему это?Хотя $ result работает как массив (на него можно ссылаться, так что $ result [i]), на самом деле это объект?Мне действительно нужно иметь массив для использования функций массива (например, array_slice ()).Помогите?

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

execute(); возвращает объект Doctrine_Collection, который реализует интерфейсы SPL, такие как ArrayAccess, Countable, Iterator, чтобы вы могли выполнять с ним базовые манипуляции с массивами (например, $result[$i]).

если вам действительно нужен массив, тогда вам нужно использовать $query->fetchArray(); вместо

0 голосов
/ 27 июля 2011

Symfony сама по себе не выполняет ORM, но я предполагаю, что вы используете доктрину (которая используется по умолчанию для Symfony) - метод execute () возвращает Doctrine_Collection.Может быть, вы захотите взглянуть на документацию API: http://www.doctrine -project.org / api / orm / 1.2 / doctrine / doctrine_query_abstract.html # execute ()

обычно естьнет необходимости использовать какие-либо методы массива для этого .. если вам нужно только подмножество результатов, не запрашивайте все ваши данные.что именно вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...