0

I have a Controller that contains the following:

...
use Magento\Backend\App\Action;
use Magento\TestFramework\ErrorLog\Logger;
use Magento\MediaStorage\Model\File\UploaderFactory;
use MyNamespace\Slider\Model\SliderImage;
class Save extends \Magento\Backend\App\Action
{
 /** @var UploaderFactory */
 protected $uploaderFactory;
 /** @var SliderImage */
 protected $imageModel;
 public function __construct(
 Action\Context $context,
 UploaderFactory $uploaderFactory,
 SliderImage $imageModel
 )
 {
 parent::__construct($context);
 $this->uploaderFactory = $uploaderFactory;
 $this->imageModel = $imageModel;
 } 
 ...
}

I am using this to save a form in the admin. It was working properly without the UploaderFactory and SliderImage in the __contruct.

I am now trying to add an Image field to the form. I have added the dependencies, UploaderFactory and SliderImage and now get the error:

Uncaught TypeError: Argument 2 passed to MyNamespace\Slider\Controller\Adminhtml\Image\Save::__construct() must be an instance of Magento\MediaStorage\Model\File\UploaderFactory, none given, called in /var/www/html/generated/code/MyNamespace/Slider/Controller/Adminhtml/Image/Save/Interceptor.php on line 14 and defined in /var/www/html/app/code/MyNamespace/Slider/Controller/Adminhtml/Image/Save.php:19 Stack trace: #0 /var/www/html/generated/code/MyNamespace/Slider/Controller/Adminhtml/Image/Save/Interceptor.php(14): MyNamespace\Slider\Controller\Adminhtml\Image\Save->__construct(Object(Magento\Backend\App\Action\Context)) #1 /var/www/html/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php(111): MyNamespace\Slider\Controller\Adminhtml\Image\Save\Interceptor->__construct(Object(Magento\Backend\App\Action\Context)) #2 /var/www/html/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(66): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('MyNamespace\Slider...', Array)

asked Nov 21, 2017 at 0:05

2 Answers 2

2

If you are using Magento 2.1.9 or less than clear var/generation, var/cache directory and if you are 2.2.0 or greater than remove generated/code and generated/metadata folder.

Thanks

answered Nov 21, 2017 at 5:00
1
  • I was looking for var/generated for quite some time. Didn't realize 2.2.0 moved the location. I ran bin/magento setup:di:compile and it fixed my issue. But now I know where these folders are so thanks :) Commented Nov 21, 2017 at 6:22
1

Clear var/generation folder and refresh, the error will be gone.

answered Nov 21, 2017 at 3:44
1
  • 1
    From Magento 2.2, generation folder is under root generated Commented Nov 21, 2017 at 4:39

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.