magento2 model resourcemodel collection different的区别

你需要3个文件:

  • 模型

  • 资源模型

  • 资源模型集合

假设您的模块名称是:Amir/Prince=>app/code/Amir/Prince

所以 :

  1. 模型 : 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;
        }
    }
  2. 资源模型: 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
        }
    
    }
  3. 资源模型集合: 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();
    }
}


nba2k2球员数据
请先登录后发表评论
  • 最新评论
  • 总共0条评论