在Laravel中动态映射路线

时间:2019-01-15 10:31:55

标签: laravel routes laravel-routing laravel-controller

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

<?php

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

1 个答案:

答案 0 :(得分:2)

Laravel没有自动将路线映射到控制器/动作的现成实现。但是,如果您真的想要这个,那么进行简单的实现并不难。

例如:

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

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