Laravel 路由的写法

Ways to write Laravel routes

有没有更好的方法来写这些路由?看来我在我的路线文件中重复了同一个控制器。

Route::post('user', [UserController::class, 'update']);
Route::get('user', [UserController::class, 'index']);
Route::delete('users/{id}',[UserController::class, 'destroy']);  

您可以使用资源路由,在控制器中指定一个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        |
+-----------+-------------+--------------+---------------------------------------------+------------+