After running bin/magento setup:di:compile I get the following error.
Errors during compilation:
Vendor\Module\Ui\Component\DataProvider\OutfitProvider Incompatible argument type: Required type: string. Actual type: \Allure\Celebrities\Ui\Component\DataProvider\name; File: /var/www/vhosts/phoenix/app/code/Vendor/Module/Ui/Component/DataProvider/OutfitProvider.php
Here is the code on Ui listing
<dataSource name="outfit_listing_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">Vendor\Module\Ui\Component\DataProvider\OutfitProvider</argument>
<argument name="name" xsi:type="string">outfit_listing_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">celebrity_outfit_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>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
</item>
</argument>
</dataSource>
Class
use Magento\Ui\DataProvider\AbstractDataProvider;
use Magento\Framework\App\Request\Http;
use Vendor\Module\Model\ResourceModel\Outfit\CollectionFactory as OutfitCollectionFactory;
use Magento\Framework\Session\SessionManagerInterface;
use Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface;
class OutfitProvider extends AbstractDataProvider implements DataProviderInterface
{
protected $_outfitCollection;
protected $_request;
protected $_sessionManger;
public function __construct(
$name,
$primaryFieldName,
$requestFieldName,
array $meta = [],
array $data = [],
OutfitCollectionFactory $outfitCollection,
Http $request,
SessionManagerInterface $sessionManager
) {
parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
$this->_request = $request;
$this->_sessionManger = $sessionManager;
$this->_outfitCollection = $outfitCollection;
$this->initCollection();
}
public function initCollection()
{
$id = $this->_request->getParam("id");
if(isset($id))
{
$this->_sessionManger->setCelebrityId($id);
}
$collection = $this->_outfitCollection->create();
$this->collection = $collection;
$this->collection->addFieldToFilter("celebrity_id", array("eq" => $this->_sessionManger->getCelebrityId()));
}
}
$name, $primaryFieldName, $requestFieldName, OutfitCollectionFactory $outfitCollection, Http $request, SessionManagerInterface $sessionManager, array $meta = [], array $data = []