Bạn cần tạo ba tệp để nhận bộ sưu tập từ mô-đun tùy chỉnh
1) Model, 2) ResourceModel, 3) Bộ sưu tập
Không gian tên: Hoàng tử
Mô-đun: Xin chào
Bảng: xin chào
1) Tạo tập tin mô hình Hello.php tại
ứng dụng / mã / Hoàng tử / Hellowworld / Model / Hello.php
<?php
namespace Prince\Helloworld\Model;
use Magento\Framework\Model\AbstractModel;
class Hello extends AbstractModel
{
/**
* Define resource model
*/
protected function _construct()
{
$this->_init('Prince\Helloworld\Model\ResourceModel\Hello');
}
}
2) Bây giờ tạo Hello.php ResourceModel tại
ứng dụng / mã / Prince / Hellowworld / Model / ResourceModel / Hello.php
<?php
namespace Prince\Helloworld\Model\ResourceModel;
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
class Hello extends AbstractDb
{
/**
* Define main table
*/
protected function _construct()
{
$this->_init('hello', 'id'); //hello is table of module
}
}
3) Bây giờ tạo tập tin Collection.php Collection tại
ứng dụng / mã / Prince / Hellowworld / Model / ResourceModel / Hello / Collection.php
<?php
namespace Prince\Helloworld\Model\ResourceModel\Hello;
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
class Collection extends AbstractCollection
{
/**
* Define model & resource model
*/
protected function _construct()
{
$this->_init(
'Prince\Helloworld\Model\Hello',
'Prince\Helloworld\Model\ResourceModel\Hello'
);
}
}
Bây giờ bạn có thể kiểm tra bộ sưu tập của bạn trong Index.php
bộ điều khiểnapp/code/Prince/Helloworld/Controller/Index/Index.php
<?php
namespace Prince\Helloworld\Controller\Index;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Prince\Helloworld\Model\HelloFactory;
class Index extends Action
{
protected $_modelHelloFactory;
public function __construct(
Context $context,
HelloFactory $modelHelloFactory
) {
parent::__construct($context);
$this->_modelHelloFactory = $modelHelloFactory;
}
public function execute()
{
$resultPage = $this->_modelHelloFactory->create();
$collection = $resultPage->getCollection(); //Get Collection of module data
var_dump($collection->getData());
exit;
}
}
Nếu bạn muốn lấy bộ sưu tập trong mẫu bằng cách sử dụng tệp khối
Bốn tệp khác bạn cần thêm nad tạo
1. Chặn tập tin
2. Bố cục tập tin
3. Tệp điều khiển
4. Tập tin Templarte
Tạo tập tin khối Hello.php
namespace vendorName\ModuleName\Block\Index;
use Magento\Framework\App\RequestInterface;
use vendorName\ModuleName\Model\Hello;
class Hello extends \Magento\Framework\View\Element\Template
{
protected $helloModelFactory;
protected $request;
public function __construct(
\Magento\Catalog\Block\Product\Context $context,
Hello $helloModelFactory,
RequestInterface $request,
array $data = []
) {
parent::__construct($context, $data);
$this->_helloModelFactory = $helloModelFactory;
$this->_request = $request;
}
/**
* Preparing global layout
*
* @return $this
*/
protected function _prepareLayout() {
parent::_prepareLayout();
$this->pageConfig->getTitle()->set(__('Display Collection'));
return $this;
}
public function getHello()
{
$collection = $this->_helloModelFactory->getCollection();
return $collection;
}
}
Hoặc Tạo tệp Bố cục RoutName_controllername_index.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="vendorName\ModuleName\Block\Event\Index" name="newevent" template="vendorName_ModuleName::Index.phtml" />
</referenceContainer>
</body>
</page>
Tạo tập tin điều khiển Index.php
<?php
namespace vendorName\ModuleName\Controller\Index;
use Magento\Framework\App\Action;
use Magento\Framework\View\Result\PageFactory;
class Index extends \Magento\Framework\App\Action\Action
{
/**
* @param Action\Context $context
*/
protected $resultPageFactory;
public function __construct(
Action\Context $context,
PageFactory $resultPageFactory
) {
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute() {
$this->_view->loadLayout();
$this->_view->renderLayout();
}
}
Tạo tập tin mẫu Index.phtml
<?php
var_dump($block->getgetHello()->getData());
Tôi hy vọng nó hoạt động mãi mãi