Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AltoRouter-默认情况下映射/路由主类_Php_Model View Controller_Routing_Altorouter_Laravel - Fatal编程技术网

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

Php AltoRouter-默认情况下映射/路由主类,php,model-view-controller,routing,altorouter,laravel,Php,Model View Controller,Routing,Altorouter,Laravel,我知道你如何调用你的控制器,但是如何将“Home”设置为默认控制器,将“index”设置为默认操作 这是错误的,但有点像 $router->map('GET', '/', function($controller, $action) { $controller = 'Home'; $action = 'index'; }); 这取决于“默认操作”的含义 如果您的意思是“如何使'/'路由转到我的HomeController类上的index()方法”,则将应用链接github

我知道你如何调用你的控制器,但是如何将“Home”设置为默认控制器,将“index”设置为默认操作

这是错误的,但有点像

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

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

如果您的意思是“如何使
'/'
路由转到我的
HomeController
类上的
index()
方法”,则将应用链接github问题(and)的简化版本:

$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.
}