Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:如何在运行时注册路由?_Php_Laravel - Fatal编程技术网

Php Laravel:如何在运行时注册路由?

Php Laravel:如何在运行时注册路由?,php,laravel,Php,Laravel,我有一个带有StandardModel和StandardConnector特性的Laravel应用程序,我正在应用于我的绝大多数型号和连接器 通过将Route::resource包含在routes文件中,这些文件具有适用于所有标准路由的功能,并且工作正常,因此/invoices显示索引页,/invoices/1/edit显示标准编辑页,等等 我想建立一个/invoices/uploadcsv的路由来实现标准功能——我可以以某种方式覆盖route::resource,以便每个搭建的模型和控制器都立

我有一个带有StandardModel和StandardConnector特性的Laravel应用程序,我正在应用于我的绝大多数型号和连接器

通过将Route::resource包含在routes文件中,这些文件具有适用于所有标准路由的功能,并且工作正常,因此/invoices显示索引页,/invoices/1/edit显示标准编辑页,等等

我想建立一个/invoices/uploadcsv的路由来实现标准功能——我可以以某种方式覆盖route::resource,以便每个搭建的模型和控制器都立即具有此路由,并将其传递给控制器的uploadcsv函数吗


谢谢,

查看名为
\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);
    }
});