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 中找到更完整的分步教程。
总而言之,您必须:
- 将
slug
属性添加到您的 "page" 模型和数据库中。
- 将懒惰行为添加到模型中。
- 定义控制器中的哪个动作将处理 slug。
- 设置 url 管理器来处理 slug。
希望这对您有所帮助。
我为我的 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 中找到更完整的分步教程。
总而言之,您必须:
- 将
slug
属性添加到您的 "page" 模型和数据库中。 - 将懒惰行为添加到模型中。
- 定义控制器中的哪个动作将处理 slug。
- 设置 url 管理器来处理 slug。
希望这对您有所帮助。