【问题标题】:Ways to write Laravel routesLaravel 路由的编写方法
【发布时间】:2021-05-20 02:29:24
【问题描述】:
有没有更好的方法来编写这些路线?看来我在路由文件中重复了相同的控制器。
Route::post('user', [UserController::class, 'update']);
Route::get('user', [UserController::class, 'index']);
Route::delete('users/{id}',[UserController::class, 'destroy']);
【问题讨论】:
标签:
php
laravel
laravel-routing
【解决方案1】:
您可以使用资源路由,在控制器中指定subset of actions。
Route::resource('user', UserController::class)->only([
'index', 'update', 'destroy'
]);
您还可以在使用已存根的 CRUD 方法生成控制器时使用 --model 选项。
php artisan make:controller UserController --resource --model=User
结果:
+-----------+-------------+--------------+---------------------------------------------+------------+
| Method | URI | Name | Action | Middleware |
+-----------+-------------+--------------+---------------------------------------------+------------+
| GET|HEAD | user | user.index | App\Http\Controllers\UserController@index | web |
| PUT|PATCH | user/{user} | user.update | App\Http\Controllers\UserController@update | web |
| DELETE | user/{user} | user.destroy | App\Http\Controllers\UserController@destroy | web |
+-----------+-------------+--------------+---------------------------------------------+------------+