2016-12-18 7 views
0

Я использую объект типа Zend\Db\ResultSet\ResultSet, который я передал от контроллера к представлению. Код приведен ниже:Доступ к данным из переменной, имеющей одну строку в zf2

view/districts/index.php:

foreach ($pk_province as $pname) 
{ 
    $p_id = $this->escapeHtml($pname->id); 
    $p_name = $this->escapeHtml($pname->p_name);  
} 

$pk_province имеет одну запись. Поэтому я хочу получить доступ к данным из него без цикла. Я пробовал $p_name = $pk_province->p_name, но он дает мне неопределенную переменную $d_name.

Любое предложение пожалуйста.

var_dump($pk_province); показывает следующее:

object(Zend\Db\ResultSet\ResultSet)#344 (8) { 
    ["allowedReturnTypes":protected]=> array(2) { 
     [0]=> string(11) "arrayobject" 
     [1]=> string(5) "array" 
    } 
    ["arrayObjectPrototype":protected]=> object(Admin\Model\Provinces)#312 (3) { 
     ["id"]=> NULL 
     ["p_name"]=> NULL 
     ["inputFilter":protected]=> NULL 
    } 
    ["returnType":protected]=> string(11) "arrayobject" 
    ["buffer":protected]=> NULL 
    ["count":protected]=> int(1) 
    ["dataSource":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Result)#322 (9) { 
     ["statementMode":protected]=> string(7) "forward" 
     ["fetchMode":protected]=> int(2) 
     ["resource":protected]=> object(PDOStatement)#316 (1) { 
      ["queryString"]=> string(58) "SELECT `provinces`.* FROM `provinces` WHERE `id` = :where1" 
     } 
     ["options":protected]=> NULL 
     ["currentComplete":protected]=> bool(false) 
     ["currentData":protected]=> NULL 
     ["position":protected]=> int(-1) 
     ["generatedValue":protected]=> string(1) "0" 
     ["rowCount":protected]=> int(1) 
    } 
    ["fieldCount":protected]=> int(2) 
    ["position":protected]=> int(0) 
} 
+0

Что такое вывод 'var_dump ($ pk_province)'? – Garry

+0

Я редактирую вышеупомянутый вопрос и добавил вывод var_dump ($ pk_province) – Skylink

ответ

1

Вы можете преобразовать ResultSet в массив с помощью the ResultSet::toArray method и получить первую строку из вашего массива:

$array = $resultSet->toArray(); 
$province = $array[0]; 

Или вы можете использовать the ResultSet::current method, чтобы собрать текущий ряд:

$province = $resultSet->current();