AltoRouter - 默认情况下映射/路由主类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AltoRouter - 默认情况下映射/路由主类相关的知识,希望对你有一定的参考价值。

我得到的部分是如何调用控制器here,但如何将'Home'设置为默认控制器,将'index'设置为AltoRouter中的默认操作

这是错的,但有点像

$router->map('GET', '/', function($controller, $action) {
    $controller = 'Home';
    $action = 'index';
});
答案

取决于“默认操作”的含义。

如果你的意思是“如何让'/'路线进入我的index()类的HomeController方法”,那么链接github问题(和the AltoRouter website)的简化版本将适用:

$router = new AltoRouter();
$router->setBasePath('/example.com'); 
$router->map('GET','/', 'HomeController#index');
$match = $router->match();

if ($match === false) {
    header($_SERVER["SERVER_PROTOCOL"].' 404 Not Found');
} else {
    list($controller, $action) = explode('#', $match['target']);
    if ( is_callable([$controller, $action]) ) {
        $obj = new $controller();
        call_user_func_array([$obj, $action], [$match['params']]);
    } else {
        // here your routes are wrong.
        // Throw an exception in debug, send a 500 error in production
    }
}

这里的#完全是任意的,它只是将控制器名称与被调用方法分开的分隔符。 使用@作为类似的路由器到控制器符号(即HomeController@index)。

如果您的意思是“如果有疑问,将主页显示为默认操作”,那么它看起来与上面的相似,唯一的区别是404路径将是简单的:

if ($match === false) {
    $obj = new HomeController();
    $obj->index();
} else {
    // etc.
}

以上是关于AltoRouter - 默认情况下映射/路由主类的主要内容,如果未能解决你的问题,请参考以下文章

SprintBoot的@ComponentScan“踩坑”

脚手架项目默认的首页index.html。以及App.vue组件中的router-view标签,默认是渲染的哪个组件?以及这个组件是可以在路由映射文件下配置的。

端口映射是啥?

默认情况下使用 Oracle 数据库时,Hibernate 将布尔数据类型映射到啥?

端口映射之有路由器和无路由器

oracle virtualbox 虚拟机网络