2

I'm trying to inject \Magento\Framework\Filter\FilterManager $filterManager Object to be able to use truncate fucnction in list.phtml

     $this->_filter->truncate($string, ['length' => $length, 'etc' => '...'])

So I overwride \Magento\Catalog\Block\Product\ListProduct. Everything is connected properly. I Overwride this method

  public function getLoadedProductCollection(){
           var_dump('working');
 } 

It's properly returning the string 'Working'. Now the problem comes when I use the __construct and try to inject Magento\Framework\Filter\FilterManager Class within the constructor. So i'm trying to do

    protected $_filterManager;

    public function __construct(
        \Magento\Catalog\Block\Product\Context $context,
        \Magento\Framework\Data\Helper\PostHelper $postDataHelper,
        \Magento\Catalog\Model\Layer\Resolver $layerResolver,
        CategoryRepositoryInterface $categoryRepository,
        \Magento\Framework\Url\Helper\Data $urlHelper,
        \Magento\Framework\Filter\FilterManager $filterManager,
        array $data = []
    ) {
        $this->_catalogLayer = $layerResolver->get();
        $this->_postDataHelper = $postDataHelper;
        $this->categoryRepository = $categoryRepository;
        $this->urlHelper = $urlHelper;
        $this->_filterManager = $filterManager;
        parent::__construct(
            $context,
            $data
        );

I clean cache, but the page fails to load giving this error.

a:4:{i:0;s:37:"Object DOMDocument should be created.";i:1;s:12622:"#0 
0

Try following way:

public function __construct(
    \Magento\Catalog\Block\Product\Context $context,
    \Magento\Framework\Data\Helper\PostHelper $postDataHelper,
    \Magento\Catalog\Model\Layer\Resolver $layerResolver,
    CategoryRepositoryInterface $categoryRepository,
    \Magento\Framework\Url\Helper\Data $urlHelper,
    \Magento\Framework\Filter\FilterManager $filterManager,
    array $data = []
) {
    $this->_catalogLayer = $layerResolver->get();
    $this->_postDataHelper = $postDataHelper;
    $this->categoryRepository = $categoryRepository;
    $this->urlHelper = $urlHelper;
    $this->filterManager = $filterManager;
    parent::__construct(
        $context,
        $postDataHelper,
        $layerResolver,
        $categoryRepository,
        $urlHelper,
        $data
    );
}
  • Still having the same issue. The site keeps breaking whenever I try to use the __Construct – Wolfgang Leon Nov 7 '16 at 13:10
  • Delete var/generation/* and clear cache – Sohel Rana Nov 7 '16 at 14:26
  • Run di:compile in your root Magento directory it should work – Suman-PHP4U Feb 6 at 11:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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