this model extend Magento\Framework\Model\AbstractModel
called in new controller from backend grid created with a uiComponent
public function __construct(
\Magento\Framework\Model\Context $context, //required
\Magento\Framework\Registry $registry, //required
\Vnecoms\BannerManager\Model\ResourceModel\Banner $resource, //required
\Vnecoms\BannerManager\Model\ResourceModel\Banner\Collection $resourceCollection, //required
\Vnecoms\BannerManager\Model\BannerFactory $bannerFactory, //optional
\Magento\Store\Model\StoreManagerInterface $storeManager, //optional
\Magento\Framework\Logger\Monolog $monolog, //optional
array $data = []
) {
parent::__construct($context, $registry, $resource, $resourceCollection, $data);
$this->_storeManager = $storeManager;
$this->_bannerFactory = $bannerFactory;
$this->_monolog = $monolog;
if ($storeViewId = $this->_storeManager->getStore()->getId()) {
$this->_storeViewId = $storeViewId;
}
}
Everything seem ok but after i clear cache
, generation
Magento show error Recoverable Error: Argument 4 passed to Vnecoms\BannerManager\Model\Banner::__construct() must be an instance of Vnecoms\BannerManager\Model\ResourceModel\Banner\Collection, instance of Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult given
my di.xml
<virtualType name="Vnecoms\BannerManager\Model\ResourceModel\Banner\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
<arguments>
<argument name="mainTable" xsi:type="string">ves_bannermanager_banner</argument>
<argument name="eventPrefix" xsi:type="string">ves_banner_grid_collection</argument>
<argument name="eventObject" xsi:type="string">banner_grid_collection</argument>
<argument name="resourceModel" xsi:type="string">Vnecoms\BannerManager\Model\ResourceModel\Banner</argument>
</arguments>
</virtualType>
Tested in php 5.5.15 magento 2.02
How to fix it