I am facing this error on Magento backed Grid page loading.
Type Error occurred when creating object: MagentoUiComponentDataSource,
Argument 2 passed to MagentoUiComponentDataSource::__construct()
must implement interface MagentoFrameworkViewElementUiComponentDataProviderDataProviderInterface,
instance of CatwalkCustomersPendingReviewsModelResourceModelOrderReviewGridCollectionInterceptor
given
my code in Catwalk/CustomersPendingReviews/Model/ResourceModel/OrderReview/Grid/Collection.php
<?php
namespace CatwalkCustomersPendingReviewsModelResourceModelOrderReviewGrid;
use MagentoFrameworkViewElementUiComponentDataProviderSearchResult;
use MagentoFrameworkDataCollectionDbFetchStrategyInterface;
use MagentoFrameworkDataCollectionEntityFactoryInterface;
use MagentoFrameworkEventManagerInterface;
use MagentoFrameworkModelResourceModelDbAbstractDb;
use PsrLogLoggerInterface;
use MagentoFrameworkViewElementUiComponentDataProviderDataProviderInterface;
class Collection extends SearchResult
{
/**
* Initialize collection.
*
* @param EntityFactoryInterface $entityFactory
* @param LoggerInterface $logger
* @param FetchStrategyInterface $fetchStrategy
* @param ManagerInterface $eventManager
* @param string $mainTable
* @param string $resourceModel
* @param string $identifierName
* @param string $connectionName
*/
public function __construct(
EntityFactoryInterface $entityFactory,
LoggerInterface $logger,
FetchStrategyInterface $fetchStrategy,
ManagerInterface $eventManager,
$mainTable = 'sales_order_grid',
$resourceModel = MagentoSalesModelResourceModelOrder::class,
$identifierName = 'entity_id',
$connectionName = null
) {
parent::__construct(
$entityFactory,
$logger,
$fetchStrategy,
$eventManager,
$mainTable,
$resourceModel,
$identifierName,
$connectionName
);
}
}
and my code in Catwalk/CustomersPendingReviews/view/adminhtml/ui_component/catwalk_order_review_grid.xml
<?xml version="1.0" encoding="UTF-8"?>
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">catwalk_order_review_grid.catwalk_order_review_grid_data_source</item>
<item name="deps" xsi:type="string">catwalk_order_review_grid.catwalk_order_review_grid_data_source</item>
</item>
<item name="spinner" xsi:type="string">catwalk_order_review_grid_columns</item>
<item name="buttons" xsi:type="array">
<item name="add" xsi:type="array">
<item name="name" xsi:type="string">add</item>
<item name="label" xsi:type="string" translate="true">Send Manual Review Request</item>
<item name="class" xsi:type="string">primary</item>
<item name="url" xsi:type="string">*/*/sendmanualemail</item>
</item>
</item>
</argument>
<dataSource name="catwalk_order_review_grid_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">CatwalkCustomersPendingReviewsModelResourceModelOrderReviewGridCollection</argument>
<argument name="name" xsi:type="string">catwalk_order_review_grid_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">entity_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="update_url" xsi:type="url" path="mui/index/render"/>
</item>
</argument>
</argument>
</dataSource>
<columns name="catwalk_order_review_grid_columns">
<column name="entity_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Order ID</item>
<item name="sortOrder" xsi:type="number">10</item>
</item>
</argument>
</column>
<column name="customer_name">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Customer Name</item>
<item name="sortOrder" xsi:type="number">20</item>
</item>
</argument>
</column>
<column name="customer_email">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Customer Email</item>
<item name="sortOrder" xsi:type="number">30</item>
</item>
</argument>
</column>
<column name="created_at">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">dateRange</item>
<item name="label" xsi:type="string" translate="true">Order Date</item>
<item name="sortOrder" xsi:type="number">40</item>
</item>
</argument>
</column>
<column name="status">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">select</item>
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="sortOrder" xsi:type="number">50</item>
<item name="options" xsi:type="array">
<item name="pending_review" xsi:type="array">
<item name="value" xsi:type="string">pending_review</item>
<item name="label" xsi:type="string" translate="true">Pending Review</item>
</item>
<item name="complete" xsi:type="array">
<item name="value" xsi:type="string">complete</item>
<item name="label" xsi:type="string" translate="true">Complete</item>
</item>
</item>
</item>
</argument>
</column>
<column name="email_status">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">select</item>
<item name="label" xsi:type="string" translate="true">Email Status</item>
<item name="sortOrder" xsi:type="number">60</item>
<item name="options" xsi:type="array">
<item name="pending" xsi:type="array">
<item name="value" xsi:type="string">pending</item>
<item name="label" xsi:type="string" translate="true">Pending</item>
</item>
<item name="sent" xsi:type="array">
<item name="value" xsi:type="string">sent</item>
<item name="label" xsi:type="string" translate="true">Sent</item>
</item>
<item name="failed" xsi:type="array">
<item name="value" xsi:type="string">failed</item>
<item name="label" xsi:type="string" translate="true">Failed</item>
</item>
</item>
</item>
</argument>
</column>
<column name="actions" class="CatwalkCustomersPendingReviewsUiComponentListingColumnActions">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="indexField" xsi:type="string">entity_id</item>
<item name="sortOrder" xsi:type="number">70</item>
<item name="label" xsi:type="string" translate="true">Actions</item>
</item>
</argument>
</column>
</columns>
</listing>