我是在 Laravel 中使用 React 的新手。我在 Laravel 8 中準備好了儀表板,在 web.php 中有路由。現在我開始在 Laravel 中使用 React 前端。Route::view('/{path?}', "welcome");問題是在放置前端后我無法訪問儀表板路由。指導我如何將兩條路線分別保存在單獨的 web.php 中。
這是我的 web.php
Route::view('/{path?}', "welcome");
Auth::routes(['verify' => true]);
Route::get('/logout',function(){
Session::flush();
return redirect('/login');
});
Route::prefix('admin')->group(function () {
Route::middleware(['is_admin'])->group(function () {
Route::get('/home', [App\Http\Controllers\Admin\ProfileController::class, 'adminHome'])->name('admin.home');
Route::get('/pending/users', [App\Http\Controllers\Admin\ProfileController::class, 'pendingUserProfiles'])->name('admin.pending.users');
Route::get('/rejected/users', [App\Http\Controllers\Admin\ProfileController::class, 'rejectedUserProfiles'])->name('admin.rejected.users');
Route::get('/users_list', [App\Http\Controllers\Admin\ProfileController::class, 'usersList'])->name('admin.users.list');
Route::get('/pending/user/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'pendingUserProfile'])->name('admin.pending.user');
Route::get('/rejected/user/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'rejectedUserProfile'])->name('admin.rejected.user');
Route::post('/profile/approve', [App\Http\Controllers\Admin\ProfileController::class, 'approveProfile'])->name('admin.aprove.profile');
Route::get('/profile/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'profileView'])->name('admin.profile.view');
Route::get('/profile/delete/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'profileDelete'])->name('admin.profile.delete');
Route::prefix('category')->group(function(){
Route::get('/add', [App\Http\Controllers\Admin\CategoryController::class, 'createCategory'])->name('admin.category.add');
Route::post('/add', [App\Http\Controllers\Admin\CategoryController::class, 'storeCategory'])->name('admin.category.store');
Route::get('/list', [App\Http\Controllers\Admin\CategoryController::class, 'listCategory'])->name('admin.category.list');
Route::get('/edit/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'editCategory'])->name('admin.category.edit');
Route::post('/edit', [App\Http\Controllers\Admin\CategoryController::class, 'storeEditCategory'])->name('admin.category.edit.store');
Route::get('/delete/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'deleteCategory'])->name('admin.category.delete');
Route::get('/fields/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'showFields'])->name('admin.category.fields.list');
Route::get('/field/delete/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'deleteField'])->name('admin.category.field.delete');
Route::get('/field/options/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'showFieldOptions'])->name('admin.category.field.options.list');
Route::get('/field/option/delete/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'deleteFieldOption'])->name('admin.category.field.option.delete');
});
});
});
Looking for any help. Thanks
uj5u.com熱心網友回復:
關于當前設定,您首先需要了解一些事情,如果您傳遞一個可選引數而不使用 where() 鏈接方法將從路由查詢中獲取所有內容,因此,在 laravel-router 可以決議任何預期路由之前, react-router 將接受您的任何查詢,它會嘗試在 laravel-router 之前解決它。
防止此問題的最佳方法是,您可以將可選路由移動到檔案末尾并添加一個鏈式where(...)方法,讓 laravel-router 知道 react-router 將使用查詢的哪一部分(如果不是,則全部)。
Auth::routes(['verify' => true]);
Route::get('/logout',function(){
Session::flush();
return redirect('/login');
});
Route::prefix('admin')->group(function () {
Route::middleware(['is_admin'])->group(function () {
Route::get('/home', [App\Http\Controllers\Admin\ProfileController::class, 'adminHome'])->name('admin.home');
Route::get('/pending/users', [App\Http\Controllers\Admin\ProfileController::class, 'pendingUserProfiles'])->name('admin.pending.users');
Route::get('/rejected/users', [App\Http\Controllers\Admin\ProfileController::class, 'rejectedUserProfiles'])->name('admin.rejected.users');
Route::get('/users_list', [App\Http\Controllers\Admin\ProfileController::class, 'usersList'])->name('admin.users.list');
Route::get('/pending/user/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'pendingUserProfile'])->name('admin.pending.user');
Route::get('/rejected/user/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'rejectedUserProfile'])->name('admin.rejected.user');
Route::post('/profile/approve', [App\Http\Controllers\Admin\ProfileController::class, 'approveProfile'])->name('admin.aprove.profile');
Route::get('/profile/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'profileView'])->name('admin.profile.view');
Route::get('/profile/delete/{id}', [App\Http\Controllers\Admin\ProfileController::class, 'profileDelete'])->name('admin.profile.delete');
Route::prefix('category')->group(function(){
Route::get('/add', [App\Http\Controllers\Admin\CategoryController::class, 'createCategory'])->name('admin.category.add');
Route::post('/add', [App\Http\Controllers\Admin\CategoryController::class, 'storeCategory'])->name('admin.category.store');
Route::get('/list', [App\Http\Controllers\Admin\CategoryController::class, 'listCategory'])->name('admin.category.list');
Route::get('/edit/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'editCategory'])->name('admin.category.edit');
Route::post('/edit', [App\Http\Controllers\Admin\CategoryController::class, 'storeEditCategory'])->name('admin.category.edit.store');
Route::get('/delete/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'deleteCategory'])->name('admin.category.delete');
Route::get('/fields/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'showFields'])->name('admin.category.fields.list');
Route::get('/field/delete/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'deleteField'])->name('admin.category.field.delete');
Route::get('/field/options/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'showFieldOptions'])->name('admin.category.field.options.list');
Route::get('/field/option/delete/{id}', [App\Http\Controllers\Admin\CategoryController::class, 'deleteFieldOption'])->name('admin.category.field.option.delete');
});
});
});
// 1. Now the routes above can be registered and resolved before reaching this line below
// 2. Including the `.*` will allow laravel take very part of the route and pass it to the react-router
Route::view('/{path?}', "welcome")->where("path", ".*");
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434997.html
上一篇:在資料庫中存盤函式
