我在Magento 2中成功制作了helloworld简单模块。现在我想从数据库中获取模型数据...所以请帮我在Magento 2中获取模型。 任何帮助,将不胜感激。
答案 0 :(得分:14)
以下是在Magento 2模块中创建Model的步骤:
在问题模型的模型文件夹中创建Question.php
,如下所示:
namespace Ecom\HelloWorld\Model;
class Question extends \Magento\Framework\Model\AbstractModel
{
public function __construct(
\Magento\Framework\Model\Context $context,
\Magento\Framework\Registry $registry,
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
array $data = []
) {
parent::__construct($context, $registry, $resource, $resourceCollection, $data);
}
public function _construct()
{
$this->_init('Ecom\HelloWorld\Model\ResourceModel\Question');
}
}
在问题资源模型的ResourceModel文件夹中创建Question.php
,如下所示:
namespace Ecom\HelloWorld\Model\ResourceModel;
class Question extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
public function _construct()
{
$this->_init('question_table_name', 'question_id');
}
}
在问题收集模型的ResourceModel / Question文件夹中创建Collection.php
,如下所示:
namespace Ecom\HelloWorld\Model\ResourceModel\Question;
class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
{
public function _construct()
{
$this->_init('Ecom\HelloWorld\Model\Question', 'Ecom\HelloWorld\Model\ResourceModel\Question');
}
}
现在您可以通过以下方式调用模型:
$question = $this->_objectManager->create('Ecom\HelloWorld\Model\Question');
$question->setTitle('Simple Question');
$question->setDescription('Question Description');
$question->save();
对于设置脚本:
有两种不同类型的安装脚本。架构安装和数据安装。模式安装用于安装数据库结构,如新表,列,关系。 数据安装或升级用于将数据添加到数据库,如设置,页面等。
如果已经创建了Module,则需要在设置文件夹中创建“UpgradeSchema.php”文件,并添加新的数据库结构以进行更新。如果未安装module,则需要创建“InstallSchema.php”以添加新的数据库结构。
为简化起见,在Magento 2中,您可以在模块中拥有6个不同的安装类:
`Setup/InstallSchema` - Script that needs to run to create database schema when module installed
`Setup/UpgradeSchema` - Script that needs to run to update or createdatabase schema when module upgraded
`Setup/InstallData` - Data Import when module installed
`Setup/UpgradeData` - Data Import when module upgraded
`Setup/Recurring` - Script run everytime when module upgrade
`Setup/Uninstall` - Script run when Module uninstalled
不再有单独的版本设置文件,每个操作只有一个类。
完成所有更改后,您需要运行命令:php bin/magentosetup:upgrade