簡體   English   中英

如何在 Laravel 中的路由前加上“admin”前綴?

[英]How to prefix “admin” to routes in Laravel?

我最近為一個項目安裝了 laravel 6。

不幸的是,這些路線不能正常工作。

例如,我將用戶引導到具有此路線的頁面..

{{ route('user.edit', ['id' => $user->id]) }}.

它應該 go 到admin/user/{user}/edit

但它去了一條這樣的未知路線:

/admin/admin/user//edit?id=1 

我的路線:

Route::group(['namespace' => 'Admin', 'middleware' => ['auth', 'IsVerified'], 'prefix' => 'admin'], function () {
    route::resource('/user', 'UserController');
});

您的路線 model 綁定不正確,將您的 href 更改為此

{{ route('user.edit', ['user' => $user]) }}

結果:

/admin/user/1/edit

在 model 上調用Route::resource會返回此 url 用於編輯路由

+--------+-----------+----------------------------+------------------+------------------------------------------------------------------------+-------------------------------------------------+
| Domain | Method    | URI                        | Name             | Action                                                                 | Middleware                                      |
+--------+-----------+----------------------------+------------------+------------------------------------------------------------------------+-------------------------------------------------+
|        | GET|HEAD  | admin/user/{user}/edit     | user.edit        | App\Http\Controllers\Admin\UserController@edit                         | web,auth,IsVerified                             |

請注意, user model 用於綁定,然后由默認返回idgetRouteKeyName函數自動獲取 ID

  1. 資源的默認占位符是 model 'user' 而不是 'id'

{{ route('user.edit', ['id' => $user->id]) }}

會成為:

{{ route('user.edit', $user) }}

  1. 您路線中的雙斜線是由不必要的斜線引起的

route::resource('/user', 'UserController');

這可能只是:

route::resource('user', 'UserController');

  1. 至於雙重“管理員”,在您看來,這可能是 output,因為您的命名空間和分組看起來是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM