我的 Laravel 專案中有以下網路路由
Route::resource('client/{client}/users', UserController::class);
Route::resource('users', UserController::class);
對于后者,我可以{{ route('users.create') }}在我的刀片檔案中使用,但我不確定要為另一個檔案放什么。
我需要 2 種方式來分離資源,因為一些用戶能夠編輯來自他們自己的客戶端 (/users) 和其他客戶端的用戶 (/client/123/users) 的用戶
`php artisan route:list 顯示我為兩者獲得了相同的名稱。命名客戶用戶資源的正確方法是什么?
| | GET|HEAD | client/{client}/users | users.index | App\Http\Controllers\UserController@index | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | POST | client/{client}/users | users.store | App\Http\Controllers\UserController@store | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | client/{client}/users/create | users.create | App\Http\Controllers\UserController@create | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | PUT|PATCH | client/{client}/users/{user} | users.update | App\Http\Controllers\UserController@update | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | DELETE | client/{client}/users/{user} | users.destroy | App\Http\Controllers\UserController@destroy | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | client/{client}/users/{user} | users.show | App\Http\Controllers\UserController@show | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | client/{client}/users/{user}/edit | users.edit | App\Http\Controllers\UserController@edit | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
和
| | GET|HEAD | users | users.index | App\Http\Controllers\UserController@index | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | users/create | users.create | App\Http\Controllers\UserController@create | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | DELETE | users/{user} | users.destroy | App\Http\Controllers\UserController@destroy | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | PUT|PATCH | users/{user} | users.update | App\Http\Controllers\UserController@update | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | users/{user} | users.show | App\Http\Controllers\UserController@show | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | users/{user}/edit | users.edit | App\Http\Controllers\UserController@edit | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
uj5u.com熱心網友回復:
的第三個引數resource是一組選項,其中一個允許您指定前綴。
Route::resource('client/{client}/users', UserController::class, ['as' => 'clients']);
Route::resource('users', UserController::class);
現在你的路線應該是
clients.users.{action}
users.{action}
uj5u.com熱心網友回復:
你需要給它一個名字。也就是說,我認為你不想要Route::resource那條路線。
我會給它起名字,clients.users.index但你可以給它任何你想要的名字。
Route::get('clients/{client}/users', [ClientController::class, 'users'])->name('clients.users.index');
{{ route('clients.users.index') }}
處理嵌套資源的方法是宣告路由:
Route::resource('clients.users', SomeOtherController::class);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/379635.html
