I am trying to get Order detail on success page by making a custom module and in my block file code is
/**
* @var \Magento\Checkout\Model\Session
*/
protected $checkoutSession;
/**
* @var int
*/
protected $oderId;
/**
* @var array
*/
protected $lastOrder;
/**
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Magento\Checkout\Model\Session $checkoutSession
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\Sales\Model\OrderFactory $orderFactory,
array $data = []
) {
parent::__construct($context, $data);
$this->checkoutSession = $checkoutSession;
$this->_orderFactory = $orderFactory;
}
protected function _prepareLayout()
{
$lastOrder = $this->checkoutSession->getLastRealOrder();
$this->orderId = $lastOrder->getIncrementId();
$this->lastOrder = $lastOrder->getData();
return parent::_prepareLayout();
}
public function getOrderId()
{
return $this->orderId;
}
public function getSubtotal()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->orderId);
return $order->getSubtotal();
}
public function getDiscountAmount()
{
/** @var \Magento\Sales\Model\Order $order */
$order = $this->_orderFactory->create()->load($this->orderId);
return $order->getDiscountAmount();
}
But after place order and on success page getting error
Uncaught TypeError: Argument 3 passed to CompanyName\Modulename\Block\successpagedata::__construct() must be an instance of Magento\Sales\Model\OrderFactory, array given, called in /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 93
I checked code many times but not getting any issue.Can anybody let me know what I am doing wrong.Please help me.
setup:upgrade
andset:di:compile
commands afterwards??