2015-08-13 35 views
3

我是在Magento 2成功helloworld簡單模塊..現在我想從數據庫中獲取模型數據...所以請幫助我在Magento 2中獲取模型。 任何幫助,將不勝感激。在magento 2 getModel的正確方法是什麼?

+0

您是谷歌嗎? –

+0

是的..我指這個鏈接:http://magento-quickies.alanstorm.com/post/66167788899/magento-2-replacements-for-getmodel-and – Niks

+0

但它沒有工作 – Niks

回答

11

下面是在Magento創建模型2模塊以下步驟:

  1. 在模型文件夾創建Question.php對於問題模型如下:

    namespace Ecom\HelloWorld\Model; 
    
    class Question 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); 
    } 
    
    public function _construct() 
    { 
        $this->_init('Ecom\HelloWorld\Model\ResourceModel\Question'); 
    } 
    } 
    
  2. 在ResourceModel文件夾創建Question.php對於問題資源型號如下:

    namespace Ecom\HelloWorld\Model\ResourceModel; 
    
    class Question extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb 
    { 
    public function _construct() 
    { 
        $this->_init('question_table_name', 'question_id'); 
    } 
    } 
    
  3. 創建ResourceModel /問題的文件夾Collection.php對於問題集型號如下:

    namespace Ecom\HelloWorld\Model\ResourceModel\Question; 
    
    class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection 
    { 
    public function _construct() 
    { 
    $this->_init('Ecom\HelloWorld\Model\Question', 'Ecom\HelloWorld\Model\ResourceModel\Question'); 
    } 
    } 
    

現在,您可以撥打以下方式型號:

$question = $this->_objectManager->create('Ecom\HelloWorld\Model\Question'); 
$question->setTitle('Simple Question'); 
$question->setDescription('Question Description'); 
$question->save(); 

對於設置腳本:

有兩種不同類型的安裝腳本。模式安裝和數據安裝。模式安裝用於安裝數據庫結構,如新表,列,關係。 數據安裝或升級用於將數據添加到數據庫中,如設置,頁面等。

如果模塊已經創建,您需要在設置文件夾中創建'UpgradeSchema.php'文件並添加新的數據庫結構更新。如果未安裝模塊,則需要創建'InstallSchema.php'以添加新的數據庫結構。

爲了簡化,在Magento 2,你可以有6種不同的設置類的模塊:

`Setup/InstallSchema` - Script that needs to run to create database schema when module installed 
    `Setup/UpgradeSchema` - Script that needs to run to update or createdatabase schema when module upgraded 
    `Setup/InstallData` - Data Import when module installed 
    `Setup/UpgradeData` - Data Import when module upgraded 
    `Setup/Recurring` - Script run everytime when module upgrade 
    `Setup/Uninstall` - Script run when Module uninstalled 

沒有單獨的版本安裝文件了,每個動作只有一個類。

完成所有更改後,您需要運行以下命令:php bin/magentosetup:upgrade

+0

非常感謝您的幫助..但是在phpmyadmin數據庫中無法創建 – Niks

+0

在magento 1.x中,數據庫在調用config.xml文件後自動創建..對吧?所以在magento 2中它有多可能? – Niks

+0

我已經更新了我的答案..希望這可以幫助 –

相關問題