zf3 db — извлекать дублирующиеся строки

У меня проблема с Zend-DB, когда я использую fetchall()строки возвращаются дублированные, например:

{
"title"         : "Florianópolis",
"neighborhoods" : [ {
"0"      : "6",
"1"      : "Abraão",
"name"   : "Abraão",
"number" : "6"},
{
"0"      : "9",
"1"      : "Açores",
"name"   : "Açores",
"number" : "9"},
{
"0"      : "5",
"1"      : "Agronômica",
"name"   : "Agronômica",
"number" : "5"},

Как видите, я получаю в два раза больше их имен и номеров. Вот метод, который выбирает информацию:

public function getNeighborhoodsByCity( $city )
{
try
{
$this -> sql = new Sql( $this -> adapter );
$select = $this -> sql -> select();
$select -> from( $this -> table );
$select -> columns( array( 'number',
'name' ) );
$select -> where( "city = '{$city}'" );
$select -> order( "name" );
$statement = $this -> sql -> prepareStatementForSqlObject( $select );
$result = $statement -> execute() -> getResource() -> fetchall();
}
catch ( \Exception $e )
{
throw new \Exception ( 'ERROR : ' . $e -> getMessage() );
}

return $result;
}

Я хотел бы знать, что генерирует 0 а также 1,
Кстати, я изучаю Zf3, поэтому любые советы по улучшению этого кода приветствуются!
Заранее спасибо!

0

Решение

Честно говоря, я не знаю причину ошибки, но вы можете решить ее следующим образом:

Установите пакеты Hydrator (если это zf3):

$ composer require zendframework/zend-hydrator

Замените свой код:

$statement = $this -> sql -> prepareStatementForSqlObject( $select );
$result = $statement -> execute() -> getResource() -> fetchall();

Для того, чтобы:

$statement = $sql->prepareStatementForSqlObject ( $select );
$result = $statement->execute ();

if (! $result instanceof ResultInterface || ! $result->isQueryResult ()) {
return [ ];
}

$resultSet = new HydratingResultSet ( new ArraySerializable(), new ArrayObject() );
$resultSet->initialize ( $result );
return $resultSet;

Включить пакеты de в заголовочный файл:

use Zend\Db\ResultSet\HydratingResultSet;
use Zend\Stdlib\ArrayObject;
use Zend\Hydrator\ArraySerializable;

Ссылка:

Зенд-увлажняющий

Гидратор Документация

SQL абстракция и гидратация объектов

0

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

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

По вопросам рекламы [email protected]