database - Toolbar.php 块不向 sorter.phtml 文件发送附加数据
问题描述
Magento 版本 2.4.1
我想使用插件在产品类别页面中添加最新的排序。
首先,我创建了一个模块并覆盖以下文件
Magento\Catalog\Model\Config
和Magento\Catalog\Block\Product\ProductList\Toolbar
.
在 Config.php 里面我有下面的插件方法
public function afterGetAttributeUsedForSortByArray(\Magento\Catalog\Model\Config $catalogConfig, $options){
$customOption['latest_product'] = __('Latest Product');
$options = array_merge($options, $customOption);
return $options;
}
打印输出时,可以在 Toolbar 类中访问最新选项。
public function getAvailableOrders()
{
$this->loadAvailableOrders();
var_dump($this->_availableOrder);
return $this->_availableOrder;
}
在与 ToolBar (sorter.phtml) 关联的模板文件上,Toolbar 块在打印时不会将最新选项传递给模板文件。
<?= var_dump($block->getAvailableOrders()) ?>
我没有得到 4 个数组元素[Position, Product Name, Price, Latest]
,而是得到了默认的 3 个元素[Position, Product Name, Price]
。
解决方案
推荐阅读
- python - 这个回文算法的时间复杂度是多少?
- entity-framework-core - EF Core 中按 ID 和类型的关系
- html - Bootstrap v5:列元素在较小的屏幕上变得更远?
- javascript - 如何使用:JavaScript Canvas 中多个对象的 globalCompositeOperation
- python - 在python中遍历数组元素的更优雅和简单的方法?
- laravel - 如何添加 saml:创建 LightSAML IDP 响应时的 XML 前缀
- python - 检查 10 个 GCS 存储桶中的文件
- c# - 如何用换行符分隔短信?
- python - Django 要求我一次又一次地迁移服务器上的待处理迁移?
- javascript - 是否可以在 JS 中获取一个对象,为属性赋值,然后将其发送到一行中的另一个函数?