【问题标题】:fetching route from vendor through routes/web.php通过 routes/web.php 从供应商处获取路由
【发布时间】:2020-04-27 19:33:47
【问题描述】:

我的路线文件夹中的web.php 中包含这条路线。

Route::group(['prefix' => 'admin','namespace'=>'Admin', 'middleware' => 'admin', 'as' => 'admin.'], function () {

Route::group(['prefix' => 'filemanager'], function () {
\UniSharp\LaravelFilemanager\Lfm::routes();
 });

});

我的问题是每当我运行 php artisan route:list 时,我都会收到以下错误

Class App\Http\Controllers\Admin\UniSharp\LaravelFilemanager\Controllers\LfmController does not exist

Lfm 控制器在我的供应商文件夹中,我一直在互联网上寻找解决方案,并应用了许多不同的方法来更改路由,我让它工作的唯一方法是使用提供的路由包中的默认值。但是如果我使用它,我会使用失去我的管理员身份验证我希望有人可以让我了解我在这里做错了什么?

我真的很感激!提前谢谢你。

【问题讨论】:

  • 将命名空间更改为供应商名称,默认情况下它会在 App.例如)'namespace' => 'UniSharp'
  • 它也没有工作,仍然有同样的问题
  • 使其成为单独的路由组,不要放在 Admin 命名空间内 Route::group(['namespace' => 'UniSharp'], function () { \LaravelFilemanager\Lfm::routes() ; });
  • 是的,我这样做了,但我仍然遇到同样的错误。相反,我在 admin 组下手动编写路由并让它工作

标签: php laravel routes laravel-5.6


【解决方案1】:

我想出了这个解决方案。我正在使用 Laravel 5.4

不是把代码放在routes/web.php中,而是放在RouteServiceProvider中,所以还没有设置默认命名空间;

protected function mapWebRoutes()
{
    Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
        \UniSharp\LaravelFilemanager\Lfm::routes();
    });

    Route::group([
        'middleware' => 'web',
        'namespace' => $this->namespace,
    ], function ($router) {
        require base_path('routes/web.php');
    });
}

【讨论】:

  • 这真是一个很棒的方法。这适用于 laravel 5.4,但我使用的是 laravel 5.6,我尝试过类似的方法,但它不起作用。我也在我的管理面板上使用它,它有一个单独的组和前缀。有效的方法是在 web.php 中手动编写路由,并在 config/lfm.php 中将 'use_package_routes' 选项设置为 false。我会发布我的路线作为答案。
【解决方案2】:

对于 laravel 5.6 及以上版本,

转到 config/lfm.php 并将 'use_package_routes' 设置为 false。

在 routes/web.php 中使用以下路由(这是一个示例,可能会更改为遵守您的前缀等):

    Route::group(['prefix' => 'admin','namespace'=>'Admin', 'middleware' => 'admin', 'as' => 'admin.'], function () {

        Route::get('/filemanager', '\UniSharp\LaravelFilemanager\Controllers\LfmController@show')->name('show');
        Route::any('/filemanager/upload', '\UniSharp\LaravelFilemanager\Controllers\UploadController@upload')->name('unisharp.lfm.upload');
        Route::get('/filemanager/errors', '\UniSharp\LaravelFilemanager\Controllers\LfmController@getErrors')->name('getErrors');
        Route::get('/filemanager/jsonitems', '\UniSharp\LaravelFilemanager\Controllers\ItemsController@getItems')->name('getItems');
        Route::get('/filemanager/move', '\UniSharp\LaravelFilemanager\Controllers\ItemsController@move')->name('move');
        Route::get('/filemanager/domove', '\UniSharp\LaravelFilemanager\Controllers\ItemsController@move')->name('domove');
        Route::get('/filemanager/newfolder', '\UniSharp\LaravelFilemanager\Controllers\FolderController@getAddfolder')->name('getAddfolder');
        Route::get('/filemanager/folders', '\UniSharp\LaravelFilemanager\Controllers\FolderController@getFolders')->name('getFolders');
        Route::get('/filemanager/crop', '\UniSharp\LaravelFilemanager\Controllers\CropController@getCrop')->name('getCrop');
        Route::get('/filemanager/cropimage', '\UniSharp\LaravelFilemanager\Controllers\CropController@getCropimage')->name('getCropimage');
        Route::get('/filemanager/cropnewimage', '\UniSharp\LaravelFilemanager\Controllers\CropController@getNewCropimage')->name('getCropimage');
        Route::get('/filemanager/rename', '\UniSharp\LaravelFilemanager\Controllers\RenameController@getRename')->name('getRename');
        Route::get('/filemanager/resize', '\UniSharp\LaravelFilemanager\Controllers\ResizeController@getResize')->name('getResize');
        Route::get('/filemanager/doresize', '\UniSharp\LaravelFilemanager\Controllers\ResizeController@performResize')->name('performResize');
        Route::get('/filemanager/download', '\UniSharp\LaravelFilemanager\Controllers\DownloadController@getDownload')->name('getDownload');
        Route::get('/filemanager/delete', '\UniSharp\LaravelFilemanager\Controllers\DeleteController@getDelete')->name('getDelete');
        Route::get('/filemanager/demo', '\UniSharp\LaravelFilemanager\Controllers\DemoController@index')->name('getDelete');


});

【讨论】:

    猜你喜欢
    • 2015-01-12
    • 1970-01-01
    • 2017-07-21
    • 2017-08-07
    • 1970-01-01
    • 2021-05-05
    • 2017-04-27
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多