【问题标题】:getOrder() doesn't return Mage_Sales_Model_Order when debugging调试时 getOrder() 不返回 Mage_Sales_Model_Order
【发布时间】:2016-09-18 23:00:30
【问题描述】:

我尝试var_dump($order),但它给了我:

object(Varien_Object)#290 (7) { ["_data":protected]=> array(0) { } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) ["_oldFieldsMap":protected]=> array(0) { } ["_syncFieldsMap":protected]=> array(0) { } }

我的class PaketId_Shipping_Block_Adminhtml_Sales_Order_Shipment_View_Shipping extends Mage_Sales_Block_Order_Shipment {

protected $order;

public function getOrder() {
    if (is_null($this->order)) {
        if (Mage::registry('current_order')) {
            $order = Mage::registry('current_order');
        }
        elseif (Mage::registry('order')) {
            $order = Mage::registry('order');
        }
        else {
            $order = new Varien_Object();
        }
        $this->order = $order;
    }
    return $this->order;
}

我的 phtml 文件:

<?php echo $this->getChildHtml('PaketId_Shipping');?>
<h1>Test custom block</h1>
<?php $order = $this->getOrder()?>
<?php var_dump($order);?>
<?php $shippings = Mage::getModel('paketid_shipping/result')->getCollection()->addOrderFilter($order) ?>
<?php echo "<pre>";?>
<?php var_dump($shippings);?>
<?php echo "</pre>" ;?>

我在 phtml 文件中的变量$order 不知何故没有调用块文件中的$order,或者我对此有误解?因为,当我尝试在其他 phtml 中 var_dump($order) 时,它会返回 object(Mage_Sales_Model_Order)#276...

我尝试将$this-getOrder() 更改为Mage::registry('current_order'),但它给了我NULL。我做错了什么?

我的收藏:

class PaketId_Shipping_Model_Resource_Result_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{

protected function _construct()
{
    parent::_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);

    return $this;
}
protected function _toOptionArray($valueField='entity_id', $labelField='booking_code', $additional=array())
{
    return parent::_toOptionArray($valueField, $labelField, $additional);
}
protected function _toOptionHash($valueField='entity_id', $labelField='booking_code')
{
    return parent::_toOptionHash($valueField, $labelField);
}
public function getSelectCountSql()
{
    $countSelect = parent::getSelectCountSql();
    $countSelect->reset(Zend_Db_Select::GROUP);
    return $countSelect;
}

我的资源:

class PaketId_Shipping_Model_Resource_Result extends Mage_Core_Model_Resource_Db_Abstract
public function _construct()
{
    $this->_init('paketid_shipping/result', 'entity_id');
}

我的结果:

class PaketId_Shipping_Model_Result extends Mage_Core_Model_Abstract
const ENTITY    = 'paketid_shipping_result';
const CACHE_TAG = 'paketid_shipping_result';
protected $_eventPrefix = 'paketid_shipping_result';
protected $_eventObject = 'paketid_shipping_result';
public function _construct()
{
    parent::_construct();
    $this->_init('paketid_shipping/result');
}

管理布局 xml:

<layout version="1.0">
<adminhtml_sales_order_shipment_new>
    <reference name="content">
        <block type="paketid_shipping/adminhtml_sales_order_shipment_view_shipping" name="paketid_shipping.order.view.shipping.block" template="paketid/shipping.phtml"/>
    </reference>
</adminhtml_sales_order_shipment_new>

【问题讨论】:

    标签: database magento zend-framework magento-1.9


    【解决方案1】:

    请从 Mage_Sales_Block_Order_Shipment 或 Mage_Sales_Block_Order_View 调用扩展您的模块类并检查它希望这有帮助。

    【讨论】:

    • 谢谢,但是哪个文件?我的意思是,从 Mage_Sales_Block_Order_View 扩展变成什么?
    • 我刚刚将 Mage_Core_Block_Template 替换为 Mage_Sales_Block_Order_Shipment
    • 它给了我`在第 119 行的 C:\xampp\htdocs\magento\app\code\core\Mage\Payment\Helper\Data.php 中的 null 上调用成员函数 getMethodInstance() `
    • 移除获取订单功能,因为这在 Mage_Sales_Block_Order_Shipment 中已经存在
    • 您能告诉我您是否在销售订单查看页面上使用您的模块?
    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2016-04-03
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多