php-从Mage_Sales_Model_Order_Invoice对象获取发票ID

我正在为sales_order_invoice_register事件编写观察者,我想获取刚刚保存的发票编号.我找不到用于检索该ID的函数,这些已注释的调用均无效.任何想法?
这里的代码

public function foobar($observer){

      $order = $observer->getEvent()->getOrder();
      $id_order = $order->getRealOrderId();
      $id_invoice = $observer->getEvent()->getInvoice(); // the Mage_Sales_Model_Order_Invoice object
      //$id_invoice = $id_invoice->getId();                                                                                                         
      //$id_invoice = $id_invoice->getIncrementId();                                                                                                            
      //$id_invoice = $id_invoice->getInvoiceId();                                                                                                           
      //$id_invoice = $id_invoice->getRealIncrementId();                                                                                               
      //$id_invoice = $id_invoice->getData('invoice_id');

谢谢!

解决方法:

我知道这是前一阵子,但是如果有人仍然需要帮助,希望以下内容会有用.

一旦进入您的观察者方法,请使用以下代码获取发票ID.

$invoice = $observer->getEvent()->getInvoice();
$invoice_id = $invoice->getData('entity_id');  // or you could also use ->getEntityId();

您可以在Mage数据库中检出sales_flat_invoice表(ID是名称为’entity_id’的第一个字段).拥有$invoice对象(类似于从Varien_Object类继承的任何其他对象)之后,就可以使用Magento的getData()方法访问属性值.

另外,可能需要查看其他事件…根据Mage文档,sales_order_invoice_register事件返回“未知”.尝试使用sales_order_invoice_pay事件获取上述代码.

上一篇:【2019年8月】OCP 071认证考试最新版本的考试原题-第19题


下一篇:JDK8 Stream代码段