[通过路由/web.php从供应商获取路由

问题描述 投票:1回答:2

我的路线文件夹中的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控制器位于我的供应商文件夹中,我一直在互联网上寻找解决方案,并为路由更改应用了许多不同的方法,而使它起作用的唯一方法是使用默认提供的路由从包装中。但是,如果我使用了它,我会失去管理员身份验证,希望有人可以让我对我在这里做错的事情有所了解?

非常感谢!预先谢谢你。

php laravel routes laravel-5.6
2个回答
0
投票

我想出了这个解决方案。我正在使用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');
    });
}

0
投票

对于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');


});
© www.soinside.com 2019 - 2024. All rights reserved.