路由
路由介绍
路由使用的是webman
的路由,具体文档可以参考webman路由
默认路由
webman默认路由规则是 http://127.0.0.1:8787/{控制器}/{动作}。
默认控制器为app\controller\IndexController,默认动作为index。
例如访问:
http://127.0.0.1:8787 将默认访问app\controller\IndexController类的index方法 http://127.0.0.1:8787/foo 将默认访问app\controller\FooController类的index方法 http://127.0.0.1:8787/foo/test 将默认访问app\controller\FooController类的test方法 http://127.0.0.1:8787/admin/foo/test 将默认访问app\admin\controller\FooController类的test方法
如果你想关闭默认路由,在配置文件 config/route.php里最后一行加上如下配置:
php
Route::disableDefaultRoute();
自定义路由
自定义路由是在config/route.php
中进行配置,saiadmin
核心使用的就是 自定义路由。在代码生成器中,如果直接生成到项目中,采取的就是默认路由,没有生成额外的路由文件配置
内置方法fastRoute
为了方便使用,saiadmin
提供了内置方法fastRoute
,使用方法定义如下:
php
if (!function_exists('fastRoute')) {
/**
* 快速注册路由[index|save|update|read|changeStatus|destroy|import|export]
* @param string $name
* @param string $controller
* @return void
*/
function fastRoute(string $name, string $controller): void
{
$name = trim($name, '/');
if (method_exists($controller, 'index')) Route::get("/$name/index", [$controller, 'index']);
if (method_exists($controller, 'save')) Route::post("/$name/save", [$controller, 'save']);
if (method_exists($controller, 'update')) Route::put("/$name/update", [$controller, 'update']);
if (method_exists($controller, 'read')) Route::get("/$name/read", [$controller, 'read']);
if (method_exists($controller, 'changeStatus')) Route::post("/$name/changeStatus", [$controller, 'changeStatus']);
if (method_exists($controller, 'destroy')) Route::delete("/$name/destroy", [$controller, 'destroy']);
if (method_exists($controller, 'import')) Route::post("/$name/import", [$controller, 'import']);
if (method_exists($controller, 'export')) Route::post("/$name/export", [$controller, 'export']);
}
}
具体的使用方式可以参考 SaiAdmin
的config\route.php
注意
该方法实际上是直接定义了8个路由,方便我们用简洁的代码就注册常用的全部路由,当然在控制器中存在的路由才会生效,如果你的控制器中不包含这些路由,那么不会生成对应的路由。