在 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