在路由中找不到 Laravel 包控制器

Tro*_*sta 2 php laravel

我有一个简单的包,我想使用控制器。当我尝试在我得到的路线中使用它时

Class App\Http\Controllers\Tropicalista\Admin\Controllers\DashboardController 
does not exist
Run Code Online (Sandbox Code Playgroud)

我的 /routes/web.php 中有这个

Route::group([
    'namespace' => '\Tropicalista\Admin\Controllers', 
    'prefix'=> 'admin'], function() {

        Route::get('/', ['as' => 'admin.root', 'uses' => 'DashboardController@index']);

});
Run Code Online (Sandbox Code Playgroud)

我的控制器:

namespace Tropicalista\Admin\Controllers;

use Illuminate\Http\Request;
use Analytics;
use Carbon\Carbon;
use Spatie\Analytics\Period;
use Illuminate\Support\Collection;
use Illuminate\Routing\Controller;

class DashboardController extends Controller
{...}
Run Code Online (Sandbox Code Playgroud)

我认为是命名空间问题。那么如何调用包控制器呢?

Soh*_*415 5

默认情况下,将RouteServiceProvider您的路由文件包含在一个namespace组中,允许您在不指定完整App\Http\Controllers命名空间前缀的情况下注册控制器路由。因此,您 only需要指定comes after基本App\Http\Controllers命名空间的命名空间部分。

您需要删除命名空间

Route::group(['prefix'=> 'admin'], function() {

    Route::get('/', ['as' => 'admin.root', 'uses' => '\Tropicalista\Admin\Controllers\DashboardController@index']);

});
Run Code Online (Sandbox Code Playgroud)