2012-03-14 59 views
1

我試圖在使用Zend Framework 1.11,Zend_Db和Zend_Db_Select的數據庫查詢中創建信息表。試圖在Zend Framework中獲取非對象的屬性1.11應用

最初,我通過實例化我的表的新實例並使用$ table-> select()來解決這個問題。

但是,當我去加入到另一個表時,我收到一條錯誤消息,我無法使用此select()方法加入。在做了一些研究之後,我發現如果我想做這個JOIN,我必須從我的默認適配器中調用select()方法。看似簡單。

在這一點上,我有一個模型,一個控制器和一個視圖,但是我認爲我的控制器&我的視圖之間出現了「翻譯中丟失」的內容。

這裏是模型(內Application_Model_DbTable_ActivityRequest):

public function getAllActivityRequests() 
{ 

     $db = $this->getDefaultAdapter(); 
     $select = $db->select(); 

     $select->from('activityrequest'); 
     $select->where('isDeleted = ?','N'); 
     $select->where('ReqType <> ?','Purchase Product'); 
     $select->order('ReqTime DESC'); 

     $query = $select->query(); 
     $row = $query->fetchAll(); 

     return $row; 
} 

和控制器(管理控制器):

public function getWorkAction() 
{ 

    $table = new Application_Model_DbTable_Activityrequest(); 

    $row = $table->getAllActivityRequests(); 

    $this->view->activityrequests = $row; 

} 

和(管理/獲取工作)(相關部分)查看:

<?php foreach($this->activityrequests as $activity): ?> 
<tr> 
    <td><?= $activity->CustomerID; ?></td> 
    <td><?= $activity->ReqType; ?></td> 
    <td><?= $activity->ReqTime; ?></td> 
    <td><?= $activity->PickupTime; ?></td> 
    <td><?= $activity->AddressID; ?></td> 
    <td><?= $activity->Notes; ?></td> 
    <td><?= $activity->HeardAbtUs; ?></td> 
    <td><?= $activity->isDeleted; ?></td> 
</tr> 
<?php endforeach; ?> 

當我在我的兩個模型$行和我的控制器的的var_dump,我看到日e數組,我試圖傳遞給視圖。但是,一旦我看到該視圖,我就會在「非對象」上看到此錯誤。

任何幫助,將不勝感激。

謝謝!

+0

什麼是實際的錯誤消息中滿了嗎? – Phil 2012-03-14 03:30:32

+0

注意:試圖在/applications/Mamp/htdocs/fifthroomstorage.com/application/views/scripts/admin/get-work.phtml上獲得非對象屬性,第14行 – jflores 2012-03-14 04:06:31

+0

我想我需要弄清楚一種方法使數組成爲一個對象。或者至少每行都有一個對象。 – jflores 2012-03-14 04:07:51

回答

1

您需要設置適配器/ select/dbTable獲取模式。

http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.select.fetch-mode

或者,使用Zend_Db_Table來充分利用

public function getAllActivityRequests() 
{ 
    return $this->fetchAll(
     $this->select() 
      ->where('isDeleted = ?', 'N') 
      ->where('ReqType <> ?', 'Purchase Product') 
      ->order('ReqTime DESC') 
    ); 
} 

http://framework.zend.com/manual/en/zend.db.table.html#zend.db.table.fetch-all.select

+0

設置適配器工作完美。謝謝! – jflores 2012-03-14 04:29:48

相關問題