【发布时间】:2020-01-27 10:10:19
【问题描述】:
正如我们在 Laravel 5.2 中所知道的,Route::controller() 和 Route::controllers() 方法已被弃用,但它对于减少路由数量非常方便。我能够写出像Route::controller('admin/invoice','InvoiceController') 这样的简单路线。通过这个简单的一条路线,我可以通过控制器管理与发票相关工作相关的所有事情。
class InvoiceController extends Controller{
public function getInvoices(){ }
public function getInvoiceDetails(){ }
public function postStoreInvoice(){ }
public function postUpdateInvoice(){ }
public function postStoreInvoiceDetails(){ }
public function postupdateInvoiceDetails(){ }
public function postDeleteInvoice(){ }
public function postDeleteInvoiceDetails(){ }
....
}
但不幸的是,这个 Route::controller() 和 Route::controllers() 不再可用 laravel 版本 > 5.1。一个可用的选项Route::resource(),但它的路线数量有限。 laravel 路由是 Macroable 的,有一个扩展路由功能的选项,比如
Illuminate\Routing\Router::macro('controller', function ($routes) {
// implementation
});
有没有人为 Laravel 5.8、6 实现 Route::controller() 和 Route::controllers() 方法?或提出任何建议。
【问题讨论】:
标签: laravel