如何在Magento2中使用模型保存数据
我有一个基本的模块与控制器和视图准备工作完美。现在,我尝试启动模型,以便使用自定义模型在包含属性(问题标题,问题)的表中保存数据。基本上,为了通过自定义表中的模型保存数据,我应该执行哪些步骤 我该怎么做,任何帮助都将不胜感激 我的操作文件中有以下代码:如何在Magento2中使用模型保存数据,magento,magento2,Magento,Magento2,我有一个基本的模块与控制器和视图准备工作完美。现在,我尝试启动模型,以便使用自定义模型在包含属性(问题标题,问题)的表中保存数据。基本上,为了通过自定义表中的模型保存数据,我应该执行哪些步骤 我该怎么做,任何帮助都将不胜感激 我的操作文件中有以下代码: class Post extends \Magento\Framework\App\Action\Action { protected $_objectManager; public function __construct(\Mag
class Post extends \Magento\Framework\App\Action\Action
{
protected $_objectManager;
public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager)
{
$this->_objectManager = $objectManager;
}
public function execute()
{
$post = $this->getRequest()->getPostValue();
$model = $this->_objectManager->create('Chirag\Mygrid\Model\Question');
$model->setData('question_title', $post['question_title']);
$model->setData('question', $post['question']);
$model->save();
}
}
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Chirag\Mygrid\Model;
class Question extends \Magento\Framework\Model\AbstractModel
{
/**
* Initialize resource model
*
* @return void
*/
protected function _construct()
{
$this->_init('Chirag\Mygrid\Model\Resource\Question');
}
}
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Chirag\Mygrid\Model\Resource;
class Question extends \Magento\Framework\Model\Resource\Db\AbstractDb
{
/**
* Initialize resource model
*
* @return void
*/
protected function _construct()
{
$this->_init('questions_and_answers', 'question_id');
}
}
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Chirag\Mygrid\Model\Resource\Question;
class Collection extends \Magento\Framework\Model\Resource\Db\Collection\AbstractCollection
{
protected function _construct()
{
$this->_init('Chirag\Mygrid\Model\Question', 'Chirag\Mygrid\Model\Resource\Question');
$this->_map['fields']['page_id'] = 'main_table.page_id';
}
/**
* Prepare page's statuses.
* Available event cms_page_get_available_statuses to customize statuses.
*
* @return array
*/
public function getAvailableStatuses()
{
return [self::STATUS_ENABLED => __('Enabled'), self::STATUS_DISABLED => __('Disabled')];
}
}
class Post扩展\Magento\Framework\App\Action\Action
{
受保护的$\u对象管理器;
公共函数构造(\Magento\Framework\objectManager接口$objectManager)
{
$this->_objectManager=$objectManager;
}
公共函数execute()
{
$post=$this->getRequest()->getPostValue();
$model=$this->\u objectManager->create('Chirag\Mygrid\model\Question');
$model->setData('question_title',$post['question_title']);
$model->setData('question',$post['question']);
$model->save();
}
}
在Magento 2中,您可以这样保存数据:
$question = $this->_objectManager->create('Ecom\HelloWorld\Model\Question');
$question->setTitle('Simple Question');
$question->setDescription('Question Description');
$question->save();
这是您将在特定操作中添加的代码
更新的答案
添加您的问题模型,如下所示:
namespace Chirag\Mygrid\Model;
class Question extends \Magento\Framework\Model\AbstractModel
{
public function __construct(
\Magento\Framework\Model\Context $context,
\Magento\Framework\Registry $registry,
\Magento\Framework\Model\Resource\AbstractResource $resource = null,
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
array $data = []
) {
parent::__construct($context, $registry, $resource, $resourceCollection, $data);
}
public function _construct()
{
$this->_init('Chirag\Mygrid\Model\Resource\Question');
}
}
也请刷新缓存
请按此操作:查看我的编辑,当我在表单提交后发布数据时,此代码显示空白页。您是否创建了问题模型和资源模型?是的,我创建了,请查看我编辑的问题。你会明白的。因为保存功能后没有重定向。检查数据库表中的新记录。但该模型的方法save()
已被弃用。