用编程的方式创建 CMS 页面

在 Magento2 中,用编程的方式创建 CMS 页面是非常需要掌握的一个技能。一旦成功创建了 CMS 页面,就需要对页面的内容完全掌握,根据需要,可以进行编辑、更新、或者删除任何数据。使用 CMS 页面可以灵活地修改内容。

概览

  • 第一步,新建 UpgradeData.php 文件

  • 第二步,插入 UpgradeDate 类

  • 第三步,设置模块版本

  • 第四步,执行升级脚本

第一步,新建 UpgradeData.php 文件

在模块下创建 UpgradeData.php 文件

第二步,插入 UpgradeDate 类

如下所示使用 UpgradeData 类,然后用 dependency injection 添加必须的模块,再添加用来创建新 CMS 页面的代码脚本。

<?php
 
namespace Vendor\Module\Setup;
 
use Magento\Framework\Setup\UpgradeDataInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
 
/**
 * @codeCoverageIgnore
 */
class UpgradeData implements UpgradeDataInterface
{
    /**
     * @var \Magento\Cms\Model\PageFactory
     */
    protected $_pageFactory;
 
    /**
     * Construct
     *
     * @param \Magento\Cms\Model\PageFactory $pageFactory
     */
    public function __construct(
        \Magento\Cms\Model\PageFactory $pageFactory
    ) {
        $this->_pageFactory = $pageFactory;
    }
 
    /**
     * @param ModuleDataSetupInterface $setup
     * @param ModuleContextInterface $context
     */
    public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();
 
        if (version_compare($context->getVersion(), '1.1') < 0) {
            $page = $this->_pageFactory->create();
            $page->setTitle('Example CMS page')
                ->setIdentifier('example-cms-page')
                ->setIsActive(true)
                ->setPageLayout('1column')
                ->setStores(array(0))
                ->setContent('Lorem ipsum dolor sit amet, consectetur adipiscing elit.')
                ->save();
        }
 
        $setup->endSetup();
    }
}

第三步,设置模块版本

打开文件 etc/module.xml ,在 setup_version 属性中设置模块的版本,应该是 1.1

第四步,执行升级脚本

最后,执行以下脚本来升级数据库,然后,就完成了创建新的 CMS 页面。

bin/magento setup:upgrade

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: