首页 > 解决方案 > Toolbar.php 块不向 sorter.phtml 文件发送附加数据

问题描述

Magento 版本 2.4.1

我想使用插件在产品类别页面中添加最新的排序。

首先,我创建了一个模块并覆盖以下文件 Magento\Catalog\Model\ConfigMagento\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]

标签: databasesortingmagentofilterproduct

解决方案


推荐阅读