你需要3个文件:
模型
资源模型
资源模型集合
假设您的模块名称是:Amir/Prince
=>app/code/Amir/Prince
所以 :
模型 : app/code/Amir/Prince/Model/Mymodel.php
<?php namespace Amir\Prince\Model; class Mymodel extends \Magento\Framework\Model\AbstractModel implements \Magento\Framework\DataObject\IdentityInterface { const CACHE_TAG = 'amir_prince_mymodel'; protected $_cacheTag = 'amir_prince_mymodel'; protected $_eventPrefix = 'amir_prince_mymodel'; protected function _construct() { $this->_init('Amir\Prince\Model\ResourceModel\Post'); } public function getIdentities() { return [self::CACHE_TAG . '_' . $this->getId()]; } public function getDefaultValues() { $values = []; return $values; } }
资源模型: app/code/Amir/Prince/Model/ResourceModel/Post.php
<?php namespace Amir\Prince\Model\ResourceModel; class Post extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { public function __construct( \Magento\Framework\Model\ResourceModel\Db\Context $context ) { parent::__construct($context); } protected function _construct() { $this->_init('amir_prince_post', 'post_id'); //post_id : Primary key of your database table } }
资源模型集合: app/code/Amir/Prince/Model/ResourceModel/Post/Collection.php
现在要调用你的集合,你需要Amir\Prince\Model\GoFactory
在你想使用它的地方调用这个类,MymodelFactory
=>模型类名+Factory
单词。
控制器中的示例:
app/code/Amir/Prince/Controller/Index/Index.php
<?php namespace Amir\Prince\Controller\Index; class Index extends \Magento\Framework\App\Action\Action { protected $_pageFactory; protected $_mymodelFactory; public function __construct( \Magento\Framework\App\Action\Context $context, \Magento\Framework\View\Result\PageFactory $pageFactory, \Amir\Prince\Model\MymodelFactory $mymodelFactory ) { $this->_pageFactory = $pageFactory; $this->_mymodelFactory = $mymodelFactory; return parent::__construct($context); } public function execute() { $post = $this->_mymodelFactory->create(); $collection = $post->getCollection(); foreach($collection as $col){ var_dump($col->getData()); } exit(); return $this->_pageFactory->create(); } }