在 Laravel 中定义路由
在 web.php 和 api.php 中注册 GET、POST 及资源路由。
在 Laravel 中定义路由 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。
基本路由
定义一个返回字符串响应的 GET 路由。
<?php
use Illuminate\Support\Facades\Route;
Route::get("/hello", function () {
return "Hello, Laravel!";
});HTTP 动词方法
Laravel 提供 get、post、put、patch、delete、options 路由方法。
<?php
Route::post("/users", [UserController::class, "store"]);
Route::put("/users/{id}", [UserController::class, "update"]);
Route::delete("/users/{id}", [UserController::class, "destroy"]);路由参数
使用 {param} 捕获 URI 片段。可选片段使用 {param?}。
<?php
Route::get("/users/{id}", function (int $id) {
return "User ID: $id";
});
// Optional:
Route::get("/posts/{slug?}", function (?string $slug = null) { });命名路由
为路由命名,以便在重定向和生成 URL 时使用。
<?php
Route::get("/dashboard", [DashboardController::class, "index"])->name("dashboard");
// Elsewhere:
return redirect()->route("dashboard");
$url = route("dashboard");路由组
将共享中间件、前缀或命名空间的路由分组。
<?php
Route::middleware("auth")->prefix("admin")->group(function () {
Route::get("/dashboard", [AdminController::class, "index"]);
Route::get("/users", [AdminController::class, "users"]);
});资源路由
Route::resource() 只需一行代码,就能为控制器注册 7 个 RESTful 路由(index、create、store、show、edit、update、destroy)。
<?php
Route::resource("posts", PostController::class);
// GET /posts, GET /posts/create, POST /posts, GET /posts/{post}
// GET /posts/{post}/edit, PUT/PATCH /posts/{post}, DELETE /posts/{post}API 资源路由
Route::apiResource() 会注册 5 个路由(跳过用于返回表单的 create 和 edit)。
<?php
Route::apiResource("users", UserController::class);路由模型绑定
在路由闭包或控制器方法中为模型添加类型提示,Laravel 会根据主键自动获取该模型。
<?php
Route::get("/users/{user}", function (User $user) {
return $user; // Laravel fetches User::findOrFail($user)
});路由约束
使用正则表达式约束路由参数的格式。
<?php
Route::get("/users/{id}", handler)->where("id", "[0-9]+");
Route::get("/users/{slug}", handler)->where("slug", "[a-z-]+");any() 与 match()
Route::any() 会响应任何 HTTP 方法。Route::match() 会响应指定方法列表中的方法。
<?php
Route::match(["get", "post"], "/contact", ContactController::class);查看已注册的路由
列出所有已注册路由及其方法、名称和操作。
$ php artisan route:list总结
Laravel 路由位于 routes/web.php 和 routes/api.php 中。请将资源路由用于 CRUD,将路由模型绑定用于自动注入模型,并使用命名路由生成 URL。
快速检查
哪个命令可以一次注册 7 个 RESTful 路由?
用 AI 导师学习 PHP — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 49
- 课程
- 195
常见问题解答
「在 Laravel 中定义路由」课时是免费的吗?
是的 — 「在 Laravel 中定义路由」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。
「在 Laravel 中定义路由」这节课中我会学到什么?
在 web.php 和 api.php 中注册 GET、POST 及资源路由。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 PHP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「在 Laravel 中定义路由」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 PHP Academy 课中编写并运行代码吗?
能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Laravel 项目结构
- 在 Laravel 中定义路由
- 控制器与操作
- Blade 模板与视图