2016-11-02 3 views
0

Использование ZF2 Я хочу получить доступ к идентификатор из таблицы в контроллере, написав следующее:идентификатор доступа в контроллер из таблицы в ZF2

$pname => $this->getProvincesTable()->fetch_province($pid); 

Но это дает мне объект Zend \ Db \ ResultSet \ ResultSet, когда я бег как

цикла просмотра
foreach($pname as $p) 
{ 
echo $this->escapeHtml($p->id); 
} 

в виде: Это дает мне идентификатор, но я хочу, чтобы получить доступ к идентификатору контроллера.

Так как я могу это сделать?

ответ

1

Я предполагаю, что вы используете TableGateway для fetch_province?

Если вы возвращающая ResultSet (т.е. совокупность элементов), вы можете получить одну строку/запись так:

$rowset => $this->getProvincesTable()->fetch_province($pid); 
$myItem = $rowset->current(); 
$myItem->id; // do something with it here.. 

Это даст вам массив/ArrayObject который вы можете получить доступ к получите свой идентификатор.

Вы можете сделать это в своем методе TableGateway, поэтому каждый раз, когда вы пытаетесь получить одну запись, вы получаете только одну запись, или если вы иногда ожидаете несколько элементов, которые вы можете перебирать по ним или использовать текущую() метод выше.

Если вы разместите еще свой код (в частности fetch_province), я бы посоветовал немного лучше.

Например,

Если вы хотите всегда один пункт назад от этого метода, используя первичный ключ, который вы могли бы сделать что-то вроде этого внутри fetch_province:

$results = $table->select(array('id' => $id)); 

if(count($results) != 1) { 
    // something went wrong, 
    // throw exception here or what ever 
} 

$row = $results->current(); 

return $row; // now u always get back your single item