你需要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();
}
}