Estás leyendo la publicación: Cómo filtrar la cuadrícula de pedidos por múltiples ID de pedidos en Magento 2
espacio de nombres Proveedor\Módulo\Complemento\UiComponent\Proveedor de datos;
use Magento\Framework\Api\Filter;
use Magento\Framework\App\Request\Http;
use Magento\Framework\Data\Collection;
use Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface;
use Magento\Sales\Api\Data\OrderInterface;
clase FilterApplier
{
const SALES_ORDER_GRID_NAMESPACE = ‘sales_order_grid’;
$solicitud protegida;
función pública __construir(
Http $solicitud
)
{
$esta->solicitud = $solicitud;
}
función pública beforeApply(FilterApplierInterface $sujeto, Colección $colección, Filtro $filtro)
{
$espacio de nombres = $este->solicitud->getParam(‘espacio de nombres’);
if ($espacio de nombres == self::SALES_ORDER_GRID_NAMESPACE) {
if ($filtro->getField() == OrderInterface::INCREMENT_ID) {
$modifiedFilterValue = str_replace(‘%’, ”, $filter->getValue());
$modifiedFilterValue = preg_replace(‘/\s+/’, ”, $modifiedFilterValue);
if (strpos($modifiedFilterValue, “,”) !== false) {
$filtro->setValue($modifiedFilterValue);
$filtro->setConditionType(‘en’);
} demás {
$filtro->setValue(‘%’ . $modifiedFilterValue . ‘%’);
$filtro->setConditionType(‘me gusta’);
}
}
}
devolver [$collection, $filter];
}
}