我成功地在Magento 2中制作了helloworld简单模块.现在我想从数据库中获取模型数据...所以请帮助我在Magento 2中获取模型.任何帮助将不胜感激.
Pan*_*eek 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');
}
}
Run Code Online (Sandbox Code Playgroud)Question.php在问题资源模型的ResourceModel文件夹中创建如下:
namespace Ecom\HelloWorld\Model\ResourceModel;
class Question extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
{
public function _construct()
{
$this->_init('question_table_name', 'question_id');
}
}
Run Code Online (Sandbox Code Playgroud)Collection.php在问题收集模型的ResourceModel/Question文件夹中创建如下:
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');
}
}
Run Code Online (Sandbox Code Playgroud)现在,您可以通过以下方式调用模型:
$question = $this->_objectManager->create('Ecom\HelloWorld\Model\Question');
$question->setTitle('Simple Question');
$question->setDescription('Question Description');
$question->save();
Run Code Online (Sandbox Code Playgroud)
对于设置脚本:
有两种不同类型的安装脚本.架构安装和数据安装.模式安装用于安装数据库结构,如新表,列,关系.数据安装或升级用于将数据添加到数据库,如设置,页面等.
如果已经创建了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
Run Code Online (Sandbox Code Playgroud)
没有单独的版本设置文件,每个操作只有一个类.
完成所有更改后,您需要运行命令: php bin/magentosetup:upgrade