Php Laravel:如何在运行时注册路由?
我有一个带有StandardModel和StandardConnector特性的Laravel应用程序,我正在应用于我的绝大多数型号和连接器 通过将Route::resource包含在routes文件中,这些文件具有适用于所有标准路由的功能,并且工作正常,因此/invoices显示索引页,/invoices/1/edit显示标准编辑页,等等 我想建立一个/invoices/uploadcsv的路由来实现标准功能——我可以以某种方式覆盖route::resource,以便每个搭建的模型和控制器都立即具有此路由,并将其传递给控制器的uploadcsv函数吗Php Laravel:如何在运行时注册路由?,php,laravel,Php,Laravel,我有一个带有StandardModel和StandardConnector特性的Laravel应用程序,我正在应用于我的绝大多数型号和连接器 通过将Route::resource包含在routes文件中,这些文件具有适用于所有标准路由的功能,并且工作正常,因此/invoices显示索引页,/invoices/1/edit显示标准编辑页,等等 我想建立一个/invoices/uploadcsv的路由来实现标准功能——我可以以某种方式覆盖route::resource,以便每个搭建的模型和控制器都立
谢谢,查看名为
\illumb\Routing\Router
的文件。您将获得所有资源方法
您可以尝试创建自己的路由器类并实现这些类
还可以添加您自己的上传CSV功能
或
在注册资源之前,只需单独向该方法添加路由:
Route::get('upload', 'FooController@uploadCSV');
Route::resource('foo', 'FooController');
我只想给出下面的方法,作为有条件地动态更改路由目标的选项
<?php
Route::post('{model}/upload', function($model){
switch ($model) {
case 'foo':
return App::call('\App\Http\Controllers\FooController@uploadCsv');
case 'bar':
return App::call('\App\Http\Controllers\BarController@uploadCsv');
default:
abort(404);
}
});
Route::get('{model}/show-upload', function($model){
switch ($model) {
case 'foo':
return App::call('\App\Http\Controllers\FooController@showUpload');
case 'bar':
return App::call('\App\Http\Controllers\BarController@showUpload');
default:
abort(404);
}
});