【发布时间】:2019-08-18 20:22:27
【问题描述】:
我创建了一个模块,我在其中覆盖了产品列表小部件的核心功能。我可以使用偏好来实现这一点,但我想了解插件方法.. 下面是我的 frontend/di.xml 代码
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\CatalogWidget\Block\Product\ProductsList">
<plugin name="widget_product_listing_add_attribute" type="Test\CatalogWidget\Plugin\Block\Product\ProductsListAddAttributePlugin" sortOrder="1"/>
</type>
</config>
下面是我的插件块代码。
namespace Test\CatalogWidget\Plugin\Block\Product;
class ProductsListAddAttributePlugin
{
public function beforeCreateCollection(\Magento\CatalogWidget\Block\Product\ProductsList $subject, \Magento\Catalog\Model\ResourceModel\Product\Collection $result)
{
/**
* @var \Magento\CatalogWidget\Block\Product\ProductsList $subject
* @var \Magento\Catalog\Model\ResourceModel\Product\Collection $result
*/
die('ProductsListAddAttributePlugin before....');
}
}
安装模块并运行 di:compile.. 当我重新加载页面时出现以下错误。
致命错误:未捕获的 ArgumentCountError:参数太少 功能 Test\CatalogWidget\Plugin\Block\Product\ProductsListAddAttributePlugin::beforeCreateCollection(), 1通过 C:\xampp\htdocs\projects\hello\vendor\magento\framework\Interception\Interceptor.php 在第 121 行,正好 2 预计在 C:\xampp\htdocs\projects\hello\app\code\Test\CatalogWidget\Plugin\Block\Product\ProductsListAddAttributePlugin.php:6 堆栈跟踪:#0 C:\xampp\htdocs\projects\hello\vendor\magento\framework\Interception\Interceptor.php(121): Test\CatalogWidget\Plugin\Block\Product\ProductsListAddAttributePlugin->beforeCreateCollection(Object(Magento\CatalogWidget\Block\Product\ProductsList\Interceptor))
1 C:\xampp\htdocs\projects\hello\vendor\magento\framework\Interception\Interceptor.php(153):
Magento\CatalogWidget\Block\Product\ProductsList\Interceptor->Magento\Framework\Interception{closure}()
2 C:\xampp\htdocs\projects\hello\generated\code\Magento\CatalogWidget\Block\Product\ProductsList\Interceptor.php(26):
放大 C:\xampp\htdocs\projects\hello\app\code\Test\CatalogWidget\Plugin\Block\Product\ProductsListAddAttributePlugin.php 在第 6 行
【问题讨论】:
-
我做到了,但我仍然遇到错误,你能帮我看看我做错了什么吗..@RakeshJakhar