Magento2 有一种面向对象的方式来利用来自 Database 的数据。那个模型和集合
步骤 1
创建模型
<?php
namespace <CompanyName>\<ModuleName>\Model;
use Magento\Framework\Model\AbstractModel;
class Data extends AbstractModel
{
protected function _construct()
{
$this->_init('<CompanyName>\<ModuleName>\Model\ResourceModel\Data');
}
}
步骤 2创建资源模型
<?php
namespace <CompanyName>\<ModuleName>\Model\ResourceModel;
use \Magento\Framework\Model\ResourceModel\Db\AbstractDb;
class Data extends AbstractDb
{
protected function _construct()
{
$this->_init('TableName', 'id'); //id is a primary key
}
}
步骤 3创建集合
namespace <CompanyName>\<ModuleName>\Model\ResourceModel\Data;
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
class Collection extends AbstractCollection
{
protected function _construct()
{
$this->_init(
'<CompanyName>\<ModuleName>\Model\Data',
'<CompanyName>\<ModuleName>\Model\ResourceModel\Data'
);
}
}
第 4 步然后我们可以简单地在我们的块文件中使用这个集合
namespace <CompanyName>\<ModuleName>\Block;
use Magento\Framework\View\Element\Template\Context;
use <CompanyName>\<ModuleName>\Model\Data;
use Magento\Framework\View\Element\Template;
class Hello extends Template
{
public function __construct(Context $context, Data $model)
{
$this->model = $model;
parent::__construct($context);
}
public function getDatas()
{
$Datas = $this->model->getCollection();
return $Datas;
}
}