2016-09-16 134 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未在编译模式下运行。

OR

也有一些是错误的语法Mage::getModel('paketid_shipping/result')->getCollection()。这不是返回正确的收集对象。尝试调试它是否返回集合对象。

OR

你可以尝试不同的类似的语法

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

它给我'布尔(假)'当我尝试'的var_dump(法师:: 'paketid_shipping /结果') - > getCollection( )'和我得到同样的错误,当尝试将我的代码更改为'Mage :: getResourceModel('paketid_shipping/result_collection') - > addOrderFilter($ order);' – may

+0

我没有'确保magento未在编译模式下运行'部分:( – may

相关问题