在 Laravel 中动态映射路线

Dynamically Map Routes in Laravel

是否有任何解决方案可以使 Laravel 路由动态调用控制器和操作?我在文档中找不到任何内容。

<?php

Route::get('/{controller}/{action}',
    function ($controller, $action) {
    })
    ->where('controller', '.*')
    ->where('action', '.*');

Laravel 没有开箱即用的实现,可以自动将路由映射到 controller/actions。但是如果你真的想要这个,简单的实现也不是那么难。

例如:

Route::get('/{controller}/{action}', function ($controller,$action) {
    return resolve("\App\Http\Controllers\{$controller}Controller")->$action();
})->where('controller', '.*')->where('action', '.*');

请记住,此示例不会自动在您的操作中注入对象,并且 url 参数也不会注入。您将不得不编写更多代码来执行此操作。