2016-09-16 8 views
0

나는 collection.php 모델을 생성하고 addOrderFilter() 기능을 추가,하지만 난 내 PHTML 파일에 addOrderFilter()를 호출 할 때, 그것은 나내 기능이 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()에 문제가 있습니다. 올바른 컬렉션 개체를 반환하지 않습니다. 콜렉션 객체를 반환하는지 여부를 디버깅 해보십시오. (> getCollection -

또는

당신은`부울 (false)를`내가 위해서 var_dump`하려고 할 때 (메이지 :: 'paketid_shipping/결과') 나에게주는 다른 유사한 구문

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

을 시도 할 수 있습니다)'와'Mage :: getResourceModel ('paketid_shipping/result_collection') -> addOrderFilter ($ order);로 코드를 변경하려고 할 때 같은 오류가 발생한다 ' – may

+0

'magento가 컴파일 모드에서 실행되지 않도록하십시오. '부분 :( – may