2016-10-04 5 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'); 
     } 
} 
関連する問題