【问题标题】:Dynamically Map Routes in Laravel在 Laravel 中动态映射路线
【发布时间】:2019-06-09 08:37:40
【问题描述】:
有没有办法让 Laravel 路由动态调用控制器和动作?我在文档中找不到任何内容。
<?php
Route::get('/{controller}/{action}',
function ($controller, $action) {
})
->where('controller', '.*')
->where('action', '.*');
【问题讨论】:
标签:
laravel
routes
laravel-routing
laravel-controller
【解决方案1】:
Laravel 没有自动将路由映射到控制器/动作的开箱即用实现。但是如果你真的想要这个,做一个简单的实现并不难。
例如:
Route::get('/{controller}/{action}', function ($controller,$action) {
return resolve("\\App\\Http\Controllers\\{$controller}Controller")->$action();
})->where('controller', '.*')->where('action', '.*');
请记住,此示例不会自动在您的操作中注入对象,也不会注入 url 参数。您将不得不编写更多代码来执行此操作。