我已经创建了一个collection.php
模型并添加了一个addOrderFilter()
函数,但是当我试图在我的php文件中调用addOrderFilter()
时,它给了我
Fatal error: Call to a member function addOrderFilter() on boolean in [...]magentoappdesignadminhtmldefaultdefaulttemplatepaketidshipping.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;
}
令人困惑的部分是,为什么我的php不渲染我的collection
模型?我做错了什么吗?
确保magento没有在编译模式下运行
或
语法Mage::getModel('paketid_shipping/result')->getCollection()
有问题。这没有返回正确的集合对象。试着调试它是否返回集合对象。
或
你可以尝试不同的类似语法
Mage::getResourceModel('paketid_shipping/result_collection')->addOrderFilter($order);