3

Here is the screenshot of error.... enter image description here

And here is my Block class...

/**
 * Categories slider get categories class file
 */

namespace MGS\Fewclicks_startsite_category\Block;

use Magento\Catalog\Api\CategoryRepositoryInterface;
use MGS\Fewclicks_cron_activation_reminder\Controller\Index;

class CategoriesCollection extends \Magento\Framework\View\Element\Template {

protected $_categoryHelper;
protected $categoryFlatConfig;
protected $categoryFactory;
protected $categoryRepository;
protected $sendMail;

public function __construct(
\Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Helper\Category $categoryHelper = null, \Magento\Catalog\Model\CategoryFactory $categoryFactory = null, \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState = null , CategoryRepositoryInterface $categoryRepository = null , \MGS\Fewclicks_cron_activation_reminder\Controller\Index\Sendmail $sendMail = null 
) {
    $this->_categoryHelper = $categoryHelper;
    $this->categoryFactory = $categoryFactory;
    $this->categoryFlatConfig = $categoryFlatState;
    $this->categoryRepository = $categoryRepository;
    $this->sendMail = $sendMail;
    parent::__construct($context);
}

public function getCategoryHelper() {
    return $this->_categoryHelper;
}

public function getStoreCategories($sorted = false, $asCollection = false, $toLoad = true) {
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of object manager
    $resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
    $connection = $resource->getConnection();
    $sql = "SELECT ccev.entity_id as id,ccev.value as name,
            ccev2.value as img
            FROM catalog_category_entity as main_table
            LEFT JOIN catalog_category_entity_varchar as ccev
            ON ccev.entity_id=main_table.entity_id AND ccev.attribute_id =45

            LEFT JOIN catalog_category_entity_varchar as ccev2
            ON ccev2.entity_id=main_table.entity_id AND ccev2.attribute_id =48

            INNER JOIN catalog_category_entity_int as ccei
            ON ccei.entity_id=main_table.entity_id AND ccei.attribute_id =46  AND ccei.value = 1

            GROUP BY ccev.entity_id
            ORDER BY main_table.level asc,main_table.parent_id asc,ccev.value asc";

    $results = $connection->fetchAll($sql);
    $this->sendMail();
    return $results;
}

public function getChildCategories($category) {
    if ($this->categoryFlatConfig->isFlatEnabled() && $category->getUseFlatResource()) {
        $subcategories = (array) $category->getChildrenNodes();
    } else {
        $subcategories = $category->getChildren();
    }
    return $subcategories;
}

public function getImageUrl($categoryId) {
    $category = $this->categoryFactory->create()->load($categoryId);
    return $category->getImageUrl();
}

public function getCategoryURL($categoryId) {
    $category = $this->categoryRepository->get($categoryId, $this->_storeManager->getStore()->getId());
    return $category->getUrl();
}
}

And here is my di.xml...

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="MGS\Fewclicks_startsite_category\Block\CategoriesCollection">
        <arguments>
            <argument name="deleteorderAction" xsi:type="array">
                <item name="context" xsi:type="string">\Magento\Framework\View\Element\Template\Context</item>
                <item name="helper" xsi:type="string">\Magento\Catalog\Helper\Category</item>
                <item name="flatstate" xsi:type="string">\Magento\Catalog\Model\Indexer\Category\Flat\State</item>
                <item name="menu" xsi:type="string">\Magento\Theme\Block\Html\Topmenu</item>
            </argument>
        </arguments>
    </type>

  <!-- <preference for="Magento\CatalogSearch\Model\Autocomplete\DataProvider" type="Fewclicks\SmartSearch\Model\Autocomplete\SearchDataProvider" /> -->
</config>

can anyone suggest where in constructor my sequence of parameter goes wrong...as i have seen that above error is due to required and optional parameter sequence issue...as per the Magento 2 - Object manager tries to instantiate Abstract class. ( Fatal error )

Please suggest me regarding this.Thanks in advance....

2
  • please post the complete class definition and di.xml if you are using it to overwrite any class. Commented Mar 17, 2017 at 6:07
  • I have updated di.xml and complete block class code in the question... Commented Mar 17, 2017 at 6:24

2 Answers 2

4

The following command will helps you. Please Run Upgrade Command:

php bin/magento setup:upgrade
0
1

check it out by running

php bin/magento setup:upgrade

if the above cli command is not working then

php bin/magento setup:static-content:deploy -f

php bin/magento cache:clean

if any file permission error then make file permission

sudo chmod -R 777 var/ generated/ pub/ var/cache

File permission 777 is not so good idea but for your error you can check it out.

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.