2016-09-16 2 views
0

Я создал collection.php модель и добавили addOrderFilter() функцию, но когда я пытаюсь вызвать addOrderFilter() в моем файле PHTML, он дает мнеПочему моя функция не работает в файле phtml?

Fatal error: Call to a member function addOrderFilter() on boolean in [...]\magento\app\design\adminhtml\default\default\template\paketid\shipping.phtml on line 5

Это мой shipping.phtml:

<?php echo $this->getChildHtml('PaketId_Shipping');?> 
<h1>Test custom block</h1> 
<?php $order = $this->getOrder()?> 
<?php $shipping = Mage::getModel('paketid_shipping/result')->getCollection()->addOrderFilter($order) ?> 
<?php if(count($shipping)): 
foreach($shipping as $shipping): ?> 
<?php echo $this->__('Booking Code') ;?> 
<?php echo $shipping->getBookingCode(); ?> 
<?php endforeach; ?> 
<?php endif; ?> 

Мой collection.php модель:

class PaketId_Shipping_Model_Resource_Result_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract 
protected $order; 

protected function _construct() 
{ 
    $this->_init('paketid_shipping/result'); 
} 

public function addOrderFilter($order) 
{ 
    if ($order instanceof Mage_Sales_Model_Order) { 
     $order = (int) $order->getId(); 
    } 
    if (!is_array($order)) { 
     $order = array($order); 
    } 

    $this->getSelect()->where("main_table.order_id IN (?)", $order); 
    //$this->getSelect()->where("main_table.order_id IN (?)", $order)->order('id DESC'); 

    return $this; 
} 

Сложная часть: почему мой phtml не отображает мою модель collection? Я делаю что-то неправильно ?

ответ

0

Убедитесь, что magento не работает в режиме компиляции.

ИЛИ

Существует что-то неправильно в синтаксисе Mage::getModel('paketid_shipping/result')->getCollection(). Это не возвращает правильный объект коллекции. Попробуйте отладить, возвращает ли объект коллекции или нет.

ИЛИ

Вы можете попробовать различные схожий синтаксис

Mage::getResourceModel('paketid_shipping/result_collection')->addOrderFilter($order); 
+0

это дает мне 'Ьоо (ложь)' при попытке 'var_dump (Mage :: 'paketid_shipping/результат') -> getCollection () 'и я получаю ту же ошибку при попытке изменить мой код на' Mage :: getResourceModel ('paketid_shipping/result_collection') -> addOrderFilter ($ order); ' – may

+0

Я не получаю' make sure magento не работает в режиме компиляции 'part :( – may