/admin,是访问地址,参数二,则是控制器的完整路径,@后面是方法。
Route::get('/admin', 'app\Controller\Admin\TaskList@Index');
:id,即是预设一个名为id的参数,访问/admin时,不传入:id会报错。
Route::get('/admin/:id', 'app\Controller\Admin\TaskList@Index');
而在控制器里的使用,则和laravel一样:
function demo ($id) {
echo $id;
}
如果给路由器设置参数,则访问该链接时,不传出参数会报错。
因此,可以设置不定参,也即是可选参数。使用[]设置,如:
Route::get('/admin/[:id]', 'app\Controller\Admin\TaskList@Index');
然后控制器中,给参数设置一个默认值,比如:
public function Index($id = ''){ ……}
使用group()进行地址分组,使用prefix()进行控制器分组。
这里和laravel有点区别,具体到控制器的文件名之后,需要以/结尾。
使用group和prefix之后,在group的参数二里边,再写路由,就不需要重复写/admin和app\Controller\Admin\TaskList了。
Route::group('/admin', function(){
Route::get('/', 'Index');
})->prefix('app\Controller\Admin\TaskList/');
一个很有趣的方法,设置后,如果地址有参数,则参数必须以.xxx结尾,可以是html,也可以是aspx或者jsp。
Route::get('/admin', 'app\Controller\Admin\TaskList@Index')->ext('html');