2016-10-04 2 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'); 
     } 
}