Magento 2 Install Data

No post anterior, falamos sobre InstallSchema através dele aprendemos a como criar uma tabela customizada num banco de dados Magento. Neste post, dando continuidade, aprenderemos a popular conteúdo nesta tabela através do Magento 2 Install Data.

Magento 2 Install Data

Para isso, voltando a nosso módulo, crie a classe InstallData, conforme abaixo:

<?php

namespace ForMage\Blog\Setup;

use Magento\Framework\Setup\InstallDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;

class InstallData implements InstallDataInterface
{
    /**
     * @param ModuleDataSetupInterface $setup
     * @param ModuleContextInterface   $context
     */
    public function install(
        ModuleDataSetupInterface $setup,
        ModuleContextInterface $context
    ) {
        $setup->startSetup();

        $setup->getConnection()->insert(
            $setup->getTable('post'),
            [
                'title' => 'My first Title',
                'description' => 'My first Description'
            ]
        );

        $setup->getConnection()->insert(
            $setup->getTable('post'),
            [
                'title' => 'My second Title',
                'description' => 'My second Description'
            ]
        );

        $setup->getConnection()->insert(
            $setup->getTable('post'),
            [
                'title' => 'My third Title',
                'description' => 'My third Description'
            ]
        );

        $setup->endSetup();
    }
}

Através do Setup/InstallData nós adicionamos conteúdo a uma tabela recém criado no Magento 2. É importante entender que: assim como o InstallSchema só roda apenas uma vez, quando o módulo está sendo instalado, o Magento 2 Install Data também. Então, se nesse momento executarmos php bin/magento setup:upgrade nada ocorrerá.

Não é possível utilizar o InstallData para popular uma tabela já criada. Para isso, teremos que remover a nossa tabela criada e remover da tabela setup_module a informação do nosso módulo ForMage_Blog. A tabela setup_module é a tabela onde o Magento 2 armazena as informações dos módulos instalados e suas respectivas versões.

Magento 2 - Setup Module Table

Como na imagem acima, temos a informação do nosso módulo instalado. Logo, removemos a linha que corresponde ao módulo com DELETE FROM setup_module WHERE module = 'ForMage_Blog';.

Ok. Feito isso, executamos novamente php bin/magento setup:upgrade

Voltando ao banco de dados temos:

Magento 2 - Trabalhando com InstallData

Assim, vimos como popular uma tabela utilizando o Magento 2 Install Data.

Para mais informações: veja.

Dúvidas? Posta aí!

Um abraço!

 

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *