2016-10-04 19 views
2

我有一個自定義表格,並且我也爲它編寫了自定義模型,但我無法理解如何執行類似Mage::getModel('')->setData()的操作。我遵循了所需的結構,創建了Model類並指定了資源模型並定義了集合類,我可以在管理網格中檢索數據。但是,我仍然無法理解如何使用我的模型setData()getData()。這是我的控制器,我正在進行AJAX調用,並且想將我的數據保存到自定義表中。如何使用magento2中的自定義模型將數據保存到自定義表格

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

現在,我不能明白,我怎麼可以從我的控制器插入表中的這個數據使用我的自定義模型。

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); 
    } 
} 

所有這一切,似乎並沒有工作,請幫我在這裏的傢伙。

回答

0
|-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'); 
     } 
} 
相關問題