-
-
Notifications
You must be signed in to change notification settings - Fork 41
Open
Description
Using included columns will result in an \OutOfBoundsException being thrown, if the grid source does not return rows/data.
I looked into this issue in the scope of this issue: element119/module-admin-opcache-report#1 (comment)
<grid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Hyva_Admin:etc/hyva-grid.xsd">
<source>
<arrayProvider>Element119\AdminOpCacheReport\Ui\DataProvider\OpCacheFlushLog</arrayProvider>
</source>
<columns>
<include>
<column name="log_id"/>
<column name="admin_name"/>
<column name="flushed_at"/>
</include>
</columns>
<!-- -->
</grid>The cause of this is, that when Hyva\Admin\Model\GridSource::extractColumnDefinitions() calls the method validateConfiguredKeys, it checks the included columns against all existing ones from the provider.
(See: https://github.com/hyva-themes/magento2-hyva-admin/blob/main/Model/GridSource.php#L77)
A simple workaround/hack I've been using (via a composer patch), is to ignore the validation if no data is present:
+ if ($allColumnKeys !== []) {
$this->validateConfiguredKeys(keys($configuredColumns), $allColumnKeys);
+ }Metadata
Metadata
Assignees
Labels
No labels
