1. 路由规则设置,是通过修改配置文件(一般是config/web.php)实现的。
大家来看看如何修改配置文件修改文件。
.... return [ .... 'components' => [ 'urlManager' => [ 'showScriptName' => true, // 是否显示文件名,如index.php 'enablePrettyUrl' => true, // 是否隐藏“&”式的URL // 路由规则 'rules' => [ '<controller:w+>/<action:w+>/<id:d+>-<page:d+>'=>'<controller>/<action>', // 路由一 '<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>', // 路由二 ], ], .... ], ];
由此可见,URL 路由配置的名称为 urlManager,它存在于 components 属性中(如果没有,请添加进去)。其中,showScriptName 和 enablePrettyUrl 带有注释,比较好理解,下面看看两个举例路由设置对应的控制器和方法的形式。
2. 现在讲解上面设置中的两个 Yii2 的 URL 路由例子。
controller 和 action 分别代表控制器和方法,假如在控制器“Site”中有方法“actionIndex”和“actionDetail”,它们如果要对应以上两个路由规则,方法的形式应该就是像下面这样的。
class StudyController extends Controller { .... public function actionIndex($id, $page = '1') { var_dump($id, $page); } public function actionDetail($id) { var_dump($id); } .... }
上面的两个例子就可以通过类似下面的网址来访问了。
http://localhost:8080/index.php/study/index/2-8 http://localhost:8080/index.php/study/detail/2
3. 说到这里,大家会不会联想到默认路由的设置呢?
要设置默认路由,也就是设置入口控制器和方法,大家可以点击这里查看。