Yii2 动态 CMS 页面 URL

Yii2 Dynamic CMS page URL

我为我的 site.And 创建了一些 CMS 页面,现在我想以这样的方式制作它,例如:domain.in/aboutus

并且我为我的数据库中的每个 CMS 页面创建了一个页面别名。
如果我调用这些页面别名,我应该得到相应的页面。

我在这里遵守我的规则

     'urlManager' => [               
            'showScriptName' => false,  // Disable index.php
            'enablePrettyUrl' => true,  // Disable r= routes
            //'enableStrictParsing' => true,
            'rules'=>array(
'aboutus'=>'cms/index/1' //I need this line dynamically
        '<siteName:\w+>/<role:(teacher|parent)>' => 'customers/login',
        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
        '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
       ),
        ],  

谁能帮忙解决这个问题?

您可能正在考虑 URL slugs

无论如何,您的开端不错,但您必须实施的不仅仅是 url 规则。执行此操作的正确方法是实施 Yii2 Sluggable Behavior,这是在模型级别完成的,并在控制器级别支持 slug。这不是一个短任务,但不应该花一整天的时间来实施。

这个,所以你可以看看那个。

可以在 this tutorial 中找到更完整的分步教程。

总而言之,您必须:

  1. slug 属性添加到您的 "page" 模型和数据库中。
  2. 将懒惰行为添加到模型中。
  3. 定义控制器中的哪个动作将处理 slug。
  4. 设置 url 管理器来处理 slug。

希望这对您有所帮助。