Php 拉威尔路由式代码点火器
我正在尝试从使用CodeIgniter切换到laravel,但是我注意到在我遵循的每个教程中,我们总是在laravel中的route.php中声明路由,而不像CodeIgniter中的路由,它有一个默认路由,如Php 拉威尔路由式代码点火器,php,codeigniter,laravel,Php,Codeigniter,Laravel,我正在尝试从使用CodeIgniter切换到laravel,但是我注意到在我遵循的每个教程中,我们总是在laravel中的route.php中声明路由,而不像CodeIgniter中的路由,它有一个默认路由,如http://localhost/projname/controller/method。有没有一种方法可以实现像CI这样的自动路由,或者我刚刚错过了laravel路由规则中的一些内容?这一点非常重要,因为我们都知道大型网站有50多个链接,如果我们要在laravel中声明这些都在routes
http://localhost/projname/controller/method
。有没有一种方法可以实现像CI这样的自动路由,或者我刚刚错过了laravel路由规则中的一些内容?这一点非常重要,因为我们都知道大型网站有50多个链接,如果我们要在laravel中声明这些都在routes.php中,那将是一件很麻烦的事情
有没有一种像CI这样的自动布线方法
为什么会有。在路由文件中执行路由::控制器(controller::detect())代码>
现在,在控制器类中,确保每个函数名都与action\uu
连接在一起。因此,如果您的函数名是homepage()
,则将其设置为action\u homepage()
请记住,您可以使用restful控制器名称
get\u homepage()
和post\u homepage()
。但是您必须在控制器中声明这个类变量publicstatic$restful=true代码>路由::控制器(控制器::检测());由于不同文件系统的行为不一致,此函数已在Laravel 4中删除。注册控制器的正确方法应该是明确定义要在路由文件中使用的每个控制器。Laravel 5再次具有Route::controller()
选项。您是否可以分享更多的上下文,以便OP能够了解您为什么要在代码中做什么?
//create controller name like UserController
//Steps:
// 1. route matched to either post or get request,
// 2. used web/controllerName/MethodName/Parameter1/parameter2 ..
// all parameters received in an array as $params. web/ is used like a route
// prefix. If no method is passed it will call index method
// 3. explode the parameter
// 4. called the controller with method and paramteres passed
// 5. parameters are matched for regex allowing alphanumeric and slash (url)
// 6. passed through guest middleware
// created controller as mentioned below:
// class SomeController extends Controller
// {
// public function index($param1,$param2,$param3){
// return 'index'.$param1.$param2.$param3;
// }
// }
Route::match(['get','post'],'/web/{controller}/{method?}/{params?}', function ($controller, $method='index', $params='') {
$params = explode('/', $params);
$controller = app()->make("\App\Http\Controllers\\". ucwords($controller).'Controller' );
return $controller->callAction($method, $params);
})->where('params', '[A-Za-z0-9/]+')->middleware('guest');