如何使用 magento2 中的自定义模型将数据保存到自定义 table
How to save data to custom table using custom model in magento2
我有一个自定义 table,我也为它编写了一个自定义模型,但我无法理解如何执行类似 Mage::getModel('')->setData()
的操作。我已遵循所需的结构,创建了模型 class 并指定了资源模型并定义了集合 class,我可以在管理网格中检索数据。但是,我仍然无法理解如何将我的模型用于 setData()
和 getData()
。这是我的控制器,我正在对其进行 AJAX 调用,我想将我的数据保存到我的自定义 table.
Rent.php
<?php
namespace Mofosys\Fastcure\Controller\Index;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Vendor\Module\Model\ModuleFactory;
class Rent extends Action {
protected $request;
protected $_moduleFactory;
public function __construct(Context $context, moduleFactory $moduleFactory) {
$this->_moduleFactory = $moduleFactory;
parent::__construct($context);
}
public function execute() {
$model = $this->_moduleFactory->create();
$data = $this->getRequest()->getPost();
$model->setName($data['name']);
$resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
$resultJson->setData($data['name']);
return $resultJson;
}
}
我的模型结构如下:
|-Model
|-ResourceModel
| |-Module
| | |-Collection.php
| |-Module.php
|-Module.php
现在,我无法理解如何使用我的自定义模型从我的控制器将此数据插入 table。
Module/Model/Module.php
<?php
namespace Vendor\Module\Model;
use Magento\Framework\Exception\LocalizedException as CoreException;
class Fastcure extends \Magento\Framework\Model\AbstractModel {
public function _construct() {
$this->_init('Vendor\Module\Model\ResourceModel\Module');
}
public function getName() {
return $this->getData(self::name);
}
public function setName($name) {
return $this->setData(self::name, $name);
}
}
所有这些似乎都不起作用,请各位帮帮我。
|-Controller
|-Index
|-Rent.php
|-Model
|-ResourceModel
| |-Module
| | |-Collection.php
| |-Module.php
|-Module.php
--------控制器代码Rent.php---------------------
<?php
namespace Mofosys\Fastcure\Controller\Index;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\App\ObjectManager;
class Rent extends \Magento\Framework\App\Action\Action
{
public function execute()
{
$data = $this->getRequest()->getPost();
$model->setName($data['name']);
$model = $objectManager->create('Mofosys\Fastcure\Model\Module');
$model->setData('itemname', $data['name']);
$msg ="";
if($data != ''){
$model->save();
$msg = 'saved successfully';
}else{
$msg = 'not saved';
}
echo $msg;
}
}
--------------------型号代码Module.php------------------ --------
<?php
namespace Mofosys\Fastcure\Model;
use Magento\Framework\Phrase;
class Module 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);
}
protected function _construct()
{
$this->_init('Mofosys\Fastcure\Model\ResourceModel\Module');
}
}
我有一个自定义 table,我也为它编写了一个自定义模型,但我无法理解如何执行类似 Mage::getModel('')->setData()
的操作。我已遵循所需的结构,创建了模型 class 并指定了资源模型并定义了集合 class,我可以在管理网格中检索数据。但是,我仍然无法理解如何将我的模型用于 setData()
和 getData()
。这是我的控制器,我正在对其进行 AJAX 调用,我想将我的数据保存到我的自定义 table.
Rent.php
<?php
namespace Mofosys\Fastcure\Controller\Index;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Vendor\Module\Model\ModuleFactory;
class Rent extends Action {
protected $request;
protected $_moduleFactory;
public function __construct(Context $context, moduleFactory $moduleFactory) {
$this->_moduleFactory = $moduleFactory;
parent::__construct($context);
}
public function execute() {
$model = $this->_moduleFactory->create();
$data = $this->getRequest()->getPost();
$model->setName($data['name']);
$resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
$resultJson->setData($data['name']);
return $resultJson;
}
}
我的模型结构如下:
|-Model
|-ResourceModel
| |-Module
| | |-Collection.php
| |-Module.php
|-Module.php
现在,我无法理解如何使用我的自定义模型从我的控制器将此数据插入 table。
Module/Model/Module.php
<?php
namespace Vendor\Module\Model;
use Magento\Framework\Exception\LocalizedException as CoreException;
class Fastcure extends \Magento\Framework\Model\AbstractModel {
public function _construct() {
$this->_init('Vendor\Module\Model\ResourceModel\Module');
}
public function getName() {
return $this->getData(self::name);
}
public function setName($name) {
return $this->setData(self::name, $name);
}
}
所有这些似乎都不起作用,请各位帮帮我。
|-Controller
|-Index
|-Rent.php
|-Model
|-ResourceModel
| |-Module
| | |-Collection.php
| |-Module.php
|-Module.php
--------控制器代码Rent.php---------------------
<?php
namespace Mofosys\Fastcure\Controller\Index;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\App\ObjectManager;
class Rent extends \Magento\Framework\App\Action\Action
{
public function execute()
{
$data = $this->getRequest()->getPost();
$model->setName($data['name']);
$model = $objectManager->create('Mofosys\Fastcure\Model\Module');
$model->setData('itemname', $data['name']);
$msg ="";
if($data != ''){
$model->save();
$msg = 'saved successfully';
}else{
$msg = 'not saved';
}
echo $msg;
}
}
--------------------型号代码Module.php------------------ --------
<?php
namespace Mofosys\Fastcure\Model;
use Magento\Framework\Phrase;
class Module 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);
}
protected function _construct()
{
$this->_init('Mofosys\Fastcure\Model\ResourceModel\Module');
}
}