2016-11-02 85 views
0

從表控制器使用ZF2我想從表中訪問ID在控制器通過寫入以下內容:訪問ID在ZF2

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

但它給我的Zend \ DB \的ResultSet \的ResultSet對象,當我在視圖下執行foreach循環爲

foreach($pname as $p) 
{ 
echo $this->escapeHtml($p->id); 
} 

: 它給我的ID,但我要訪問的ID的控制器。

那麼我該如何做到這一點?

回答

1

我猜你正在使用TableGateway fetch_province?

如果你返回一個結果集(即項目的集合),你可以得到一個單一的行/項是這樣的:

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

這會給你一個數組/ ArrayObject的,然後您可以訪問得到你的ID。

你可以在你的TableGateway方法中這樣做,所以如果你試圖獲得單個條目,或者你有時期望多個條目可以迭代它們或使用current()方法。

如果你發佈了一些更多的代碼(特別是fetch_province),我可以提供更好的建議。

例如;

如果你總是想從這個方法1項背使用主鍵,你可以做這樣的事情裏面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