我的配置如下
routes/web.php
<?php
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', function () {
return view('auth.login');
});
Route::get('/logout', 'Auth\LoginController@logout')->name('logout');
Auth::routes([
'register' => false,
'reset' => false,
'verify' => false,
]);
//Route::get('/home', 'HomeController@index')->name('home');
Route::prefix('admin')->group(function () {
Route::group(['middleware' => ['auth', 'role:admin']], function () {
Route::get('/', 'Admin\AdminController@index')->name('dashboard');
Route::resource('permissions', 'Admin\PermissionController');
Route::resource('reviews', 'Admin\ReviewController');
Route::resource('roles', 'Admin\RoleController');
Route::resource('users', 'Admin\UserController');
});
});
但是我得到这个错误
Illuminate \ Contracts \ Container \ BindingResolutionException
Target class [Admin/AdminController] does not exist.
我的 AdminController 存在于
app/Http/ControllersAdmin/
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminController extends Controller
Laravel 8+ 使用另一种方式,所以不是
Route::get('/', 'Admin\AdminController@index')->name('dashboard');
,它应该是Route::get('/', [AdminController::class, 'index'])->name('dashboard');
.
所有路线都一样……现在不一样了……
这部分文档会解释更多...