Как я могу получить коллекцию пользовательских модулей в magento 2


Я создал пользовательский модуль: Ashore_Faq

Моя структура модуля такова:

Ashore
└───Faq
    │   registration.php
    │
    ├───etc
    │       module.xml
    │
    ├───Model
    │   │   Custom.php

    │   │
    │   └───ResourceModel
    │       │   Custom.php
    │       │
    │       └───Custom
    │               Collection.php
    │
    ├───Setup
    │       InstallSchema.php
    │       
    │
    └───view
        └───frontend
            │___Template
            │       Faq
                        Index.php
            ├───layout
            │       faq_faq_index.xml
            │

После создания модуля я написал ниже код, но он не работает.

Ниже приведен код со структурой папок:

/block/Faq/Index.php

<?php

namespace Ashore\Faq\Block\Faq;
use Ashore\Faq\Block\BaseBlock;

class Index extends BaseBlock
{
    //public $hello='Hello World';

    protected $mymodulemodelFactory;
    public function __construct(
    \Ashore\Faq\Model\ResourceModel\Custom\CollectionFactory $mymodulemodelFactory, 
    )
    {
        $this->mymodulemodelFactory = $mymodulemodelFactory;
    }
    public function getCollection()
    {
        $collection = $this->mymodulemodelFactory->create();
        return $collection;
    }


}

И

Получить структуру папок данных коллекции:

/Просмотр/Интерфейс/Часто задаваемые вопросы по шаблонам.Index.php

echo $block->getCollection();

Но это не работает. После выполнения кода он отображает пустую страницу.

Пожалуйста, предложите решение?

 1
Author: Mohit Kumar Arora, 2017-06-23

2 answers

Вы можете получить данные, используя каждую из вашей коллекции,

class Index extends BaseBlock
{
    //public $hello='Hello World';

     protected $mymodulemodelFactory;
     public function __construct(
       \Ashore\Faq\Block\Context $context,
       \Ashore\Faq\Model\CustomFactory $mymodulemodelFactory
     )
     {
        $this->mymodulemodelFactory = $mymodulemodelFactory;
        parent::__construct($context);
     }
    public function getCollection()
    {
        $collection = $this->mymodulemodelFactory->create()->getCollection()->addAttributeToSelect('*');
        return $collection;
    }
}

В файле блока,

$collection = $block->getCollection();
foreach($collection as $moduledata){
    echo "<pre>";print_r($moduledata->getData());
}

Удалите папку var и проверьте.

 0
Author: Rakesh Jesadiya, 2017-06-23 06:39:05
<?php

namespace Ashore\Faq\Block\Faq;

use Magento\Framework\App\RequestInterface;
use Ashore\Faq\Block\BaseBlock;
use Ashore\Faq\Model\ResourceModel\Custom\CollectionFactory;

class Index extends \Magento\Framework\View\Element\Template 
{
    protected $mymodulemodelFactory;
    protected $request;

    public function __construct(
    CollectionFactory $mymodulemodelFactory,
    \Magento\Catalog\Block\Product\Context $context,
    RequestInterface $request,
    array $data = [] 
    )
    {
        parent::__construct($context, $data);
        $this->_request = $request;
        $this->mymodulemodelFactory = $mymodulemodelFactory;
    }
    public function getCollection()
    {
        $collection = $this->mymodulemodelFactory->getCollection();
        return $collection;
    }
}

Привет @Devidas Я надеюсь, Что Это Сработает Для вас

 1
Author: Baharuni Asif, 2020-01-02 12:43:11