Saya telah mengembangkan satu modul khusus dan saya telah mencoba untuk menimpa blok tampilan produk dengan mengikuti dua tautan ini. Mengganti Blok di Magento 2 dan DI & Memperluas Blok di Magento 2 tetapi ketika saya menekan halaman tampilan produk itu memberi saya 404 halaman. apa yang telah saya lakukan sejauh ini di bawah ini
di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
<preference for="Magento\Catalog\Block\Product\View" type="TT\Helloworld\Block\Myproduct"/>
</config>
Myproduct.php
<?php
namespace TT\Helloworld\Block;
use Magento\Framework\View\Element\Template;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Catalog\Model\Product;
class Myproduct extends \Magento\Catalog\Block\Product\View
{
protected $_helper;
protected $_objectManager;
public function __construct(
\Magento\Catalog\Block\Product\Context $context,
\Magento\Framework\Url\EncoderInterface $urlEncoder,
\Magento\Framework\Json\EncoderInterface $jsonEncoder,
\Magento\Framework\Stdlib\StringUtils $string,
\Magento\Catalog\Helper\Product $productHelper,
\Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig,
\Magento\Framework\Locale\FormatInterface $localeFormat,
\Magento\Customer\Model\Session $customerSession,
ProductRepositoryInterface $productRepository,
\Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency,
array $data = [],
\TT\Helloworld\Helper\Data $helper
) {
parent::__construct($context, $urlEncoder, $jsonEncoder, $string, $productHelper, $productTypeConfig, $localeFormat, $customerSession, $productRepository, $priceCurrency, $data,$helper);
$this->_helper = $helper;
}
protected function _toHtml()
{
$this->setModuleName($this->extractModuleName('Magento\Catalog\Block\Product\View'));
return parent::_toHtml();
}
Sesuai DI & Memperluas Blok pada tautan Magento 2, saya juga menyertakan semua parameter konstruk kelas induk di konstruktor Myproduct.php.
Adakah yang tahu di mana saya salah? atau apa cara yang benar untuk mengesampingkan ini?
TT\Helloworld\Block\Myproduct.php
==>TT\Helloworld\Block\Myproduct
(hapus.php
)C:\xampp\htdocs\Magento2\var\generation\TT\Helloworld\Block\Myproduct\Interceptor.php
dan komentari__construct
metode ini dan coba lagi tolongJawaban:
Untuk melanjutkan
__construct
metode komentar (solusi sementara)Interceptor
dihasilkan (yang baru akan dihasilkan - perlu dihapus setelah setiap modifikasi__construct
metode)template="TT_Helloworld::myproduct.phtml"
sumber
Anda harus memasukkan \ TT \ Helloworld \ Helper \ Data $ helper sebelum array $ data = [] di __contruct
sumber