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.
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:
Assim, vimos como popular uma tabela utilizando o Magento 2 Install Data.
Para mais informações: veja.
Dúvidas? Posta aí!
Um abraço!