刚接触新框架,每创建一个控制器都需要设置一条路由吗?

请教一下,我每创建一个控制器都要在路由里面设置之后才能访问,是一定要这样操作吗? 还是有其他设置??像thinkphp控制名方法名与url链接对应即可

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

当然,出于安全考虑也是必须写上路由的,之前我做 thinkphp 也是开启强制路由的,不建议偷工减料

另以下添加到路由文件可实现 TP 类似功能,但是真的不建议这样用:joy:

Route::any("/{module}/{controller}/{action}", function ($module, $class, $action) {
        $class = "App\\Http\\Controllers\\$module\\" . ucfirst(strtolower($class)) . 'Controller';
        if (class_exists($class)) {
            $ctrl = \App::make($class);
            return \App::call([$ctrl, $action]);
        }
        return abort(404);
});
1年前 评论
讨论数量: 6

当然,出于安全考虑也是必须写上路由的,之前我做 thinkphp 也是开启强制路由的,不建议偷工减料

另以下添加到路由文件可实现 TP 类似功能,但是真的不建议这样用:joy:

Route::any("/{module}/{controller}/{action}", function ($module, $class, $action) {
        $class = "App\\Http\\Controllers\\$module\\" . ucfirst(strtolower($class)) . 'Controller';
        if (class_exists($class)) {
            $ctrl = \App::make($class);
            return \App::call([$ctrl, $action]);
        }
        return abort(404);
});
1年前 评论

当然,出于安全考虑也是必须写上路由的,之前我做 thinkphp 也是开启强制路由的,不建议偷工减料

另以下添加到路由文件可实现 TP 类似功能,但是真的不建议这样用:joy:

Route::any("/{module}/{controller}/{action}", function ($module, $class, $action) {
        $class = "App\\Http\\Controllers\\$module\\" . ucfirst(strtolower($class)) . 'Controller';
        if (class_exists($class)) {
            $ctrl = \App::make($class);
            return \App::call([$ctrl, $action]);
        }
        return abort(404);
});
1年前 评论

基础的增删改查可以用资源路由一次性,其他的还是强制路由好一些把

1年前 评论

路由相当于目录 有路由配置中间件才灵活

1年前 评论

路由是必须的
laravel路由灵活且强大, 让你的url简洁且安全

安全方面:
可以设置get/post不同请求, 同时可以约束参数规则
功能方面:
路由-> 调用方法或者控制器的方法
路由->中间件(验证)->控制器的方法

具体使用方法 路由《Laravel 9 中文文档》

1年前 评论

必须弄路由呀...... tp那玩意就是上手快 路由再加中间件才香那

1年前 评论
陈先生

出于设计不同理念不同的考虑,不建议采用 pathinfo 的方式去自动寻址,设计的路由的初衷是更快的寻址以及更高的契合度. 在没有路由的情况下,不同的 controllerMethod 在使用不同中间件的时候,岂不是到处都写

$this->middleware(static function(Request $request ){
// If you want to do something.
})

第二个原因就是更加舒服的 路由绑定模型的操作, 按照pathinfo 的写法也不是不行.但是问题出在了这不符合 restful 规范,如果你讲 我就要这样写,那我也没辙.

第三个原因是 可以百分百避免你控制器里面写方法被别人探到. 见过很多控制器里面就直接写方法的. 路由不是刚好保护了这些函数么?

第四个原因是 维护以及路由版本的控制. 你按照 pathinfo 的写法做完了,现在有一部分需要灰度测试,需要加一个 version 在路由上面, 按照这个做法 拷贝一份Controller 放在 ‘app/http/Controller/{version}/Controller’ 下面?
第五个原因 路由的兜底操作 简单说 404.

不提倡 pathinfo 这样的写法,也不提倡 m=x&c=x&a=x 因为看似简单的背后说起来都是隐患. 与其花大力气改成了你期望的 pathiinfo, 不如在开始就按照规范.

以上内容没有任何针对性,仅是一点个人对 路由 的理解.

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!