Yii2动态CMS页面URL

时间:2016-03-16 12:56:41

标签: php content-management-system yii2

我为我的网站创建了一些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>',
       ),
        ],  

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

你可能在考虑URL slugs

无论如何你开始很好,但你必须实现的不仅仅是网址规则。正确的方法是实现Yii2 Sluggable Behavior,这是在模型级别完成的,并支持控制器级别的slug。这不是一项短期任务,但实施它不需要一整天。

was answered before,所以你可以看一下。

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

总之,您必须:

  1. 在您的“页面”模型和数据库中添加slug属性。
  2. 将可缓慢行为添加到模型中。
  3. 定义控制器中的哪个动作将处理slu ..
  4. 设置网址管理器以处理slu ..
  5. 希望这有帮助。