2012-03-14 2 views
1

Я пытаюсь создать таблицу информации в запросе базы данных с помощью Zend Framework 1.11, Zend_Db и Zend_Db_Select.Попытка получить свойство не-объекта в Zend Framework 1.11 Application

Первоначально я об этом рассказывал, создавая экземпляр нового экземпляра таблицы и используя $ table-> select().

Однако, когда я пошел к нему в другую таблицу, у меня появилось сообщение об ошибке, что я не смог подключиться к этому методу select(). После некоторых исследований я обнаружил, что мне пришлось вызвать метод select() моего адаптера по умолчанию, если я хотел сделать это JOIN. Казалось просто.

На данный момент у меня есть модель, контроллер и вид, но я думаю, что что-то «теряется в переводе» между моим контроллером & my View.

Вот модель (внутри 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; 
} 

И контроллер (Admin Controller):

public function getWorkAction() 
{ 

    $table = new Application_Model_DbTable_Activityrequest(); 

    $row = $table->getAllActivityRequests(); 

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

} 

И (соответствующие части) View (админы/получить работу) :

<?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

+0

Примечание: попытка получить свойство не-объекта в /Applications/Mamp/htdocs/fifthroomstorage.com/application/views/scripts/admin/get-work.phtml в строке 14 – jflores

+0

Мне кажется, мне нужно выяснить способ сделайте массив объектом. Или, по крайней мере, каждая строка - объект. – jflores

ответ

1

Вам необходимо установить режим выбора адаптера/выбора/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

Смежные вопросы