发布于 2026-01-06 2 阅读
0

面向 JavaScript/NodeJS 开发者的 Laravel 6 和 VueJS 学习教程(第四部分)——Laravel 路由基础

面向 JavaScript/NodeJS 开发者的 Laravel 6 和 VueJS 学习教程(第四部分)——Laravel 路由基础

Laravel 中的路由

上一部分我们深入探讨了路由及其工作原理。这一部分我们将更详细地讨论 Laravel 中的路由机制。

Laravel 自带路由,Vue.js 也都有自己的路由。本节我们将只讨论 Laravel 的路由。

基础知识

routes你会在 Laravel 项目的主文件夹中找到一个文件夹。

如果您使用的是 Laravel 6 或更高版本,则此文件夹中默认包含四个文件。这四个文件用途各不相同,您应该了解何时将路由添加到哪个特定文件中。

这些文件分别命名为 `.txt` api.php、 `.exe` channels.phpconsole.php`.exe` 和 `.exe` web.php。在本部分,我们只讨论 `.txt`api.php和 `.exe` 文件web.php。`.exe`channels.php和 `.exe`console.php文件属于更高级的主题,我们将在后面讨论。

顾名思义,`<web>` 标签web.php用于定义 Web 路由。Web 路由是指最终用户在浏览器中访问的路径。
如果您需要使用 API,则需要在 `<web>` 标签中定义路由api.php。我想到目前为止,这一点应该很清楚了。

我们来看一个hello world例子。

<?php

Route::get('/', function () {
    return 'hello world!';
});

如果你编辑了你的web.php文件,保存后,访问http://127.0.0.1:8000你的 Laravel 应用所在的目录(例如 webpack)。
现在你应该只会看到一个空白页面,上面显示着“hello world”。

让我们来分析一下这段简短的内容。

Route::get这意味着它应该监听一个 HTTP GET 请求。第一个参数/是该 GET 请求的路径。在我们的示例中,它是根路由。第二个参数是一个闭包,它会在收到 HTTP 请求时运行。闭包是一个没有名称的函数,也称为匿名函数。浏览器将接收该函数返回的任何内容。很简单,对吧?

默认情况下,您将在文件中看到以下函数代码web.php

Route::get('/', function () {
    return view('welcome');
});

view这个闭包现在会返回一个以参数命名的函数welcome。这看起来有点晦涩难懂,但你很快就会明白。查看你的resources/view文件夹。在那里你会找到一个名为 `.php.js` 的文件welcome.blade.php。调用该view函数并传入参数welcome,会将这个文件以渲染后的形式返回给浏览器。这意味着所有 Blade 模板代码都将在服务器端运行,然后生成的 PHP 文件将被发送到浏览器。

路由参数

在某些情况下,您需要解析 URL。最常见的例子是 Id 参数。它可以是用户 ID、文章 ID 或您当前需要的任何 ID。在我们的示例中,我们将尝试获取 Id 为 . 的文章1

Route::get('/post/{postId}', function ($postId = null) {
    return $postId;
});

让我们来分析一下这段代码。函数的第一个参数Route::get仍然是 URL 路径,但现在我们看到它被花括号括起来了postId。花括号告诉 Laravel 这是一个参数。我们需要在闭包中引用这个参数。这就是为什么$postId第一个参数是 `<path>` 的原因。现在这个参数是必需的。仅仅提供一个/post/路径是行不通的。如果我们想让这个参数成为可选的,我们需要按如下方式修改代码。

Route::get('/post/{postId?}', function ($postId = null) {
    return $postId;
});

这里唯一的改动是?参数名称末尾的 `--optional`。这?会告诉 Laravel 该参数postId是可选的,即使用户没有传递该参数,你仍然可以响应此路由。

请求类型

到目前为止,我们只处理过`Request` 类型get,但 Laravel 中还有更多请求类型。以下是所有请求类型的列表:

  • 得到
  • 邮政
  • 删除
  • 修补
  • 选项

列出 Laravel 中的所有路由

Laravel 提供了一个简洁的命令来显示所有可用的路由。
你只需要输入以下命令即可。

PHP artisan route:list

这将在您的终端中显示一个包含所有路线的表格。

+--------+----------+---------------+------+---------+--------------+
| Domain | Method   | URI           | Name | Action  | Middleware   |
+--------+----------+---------------+------+---------+--------------+
|        | GET|HEAD | /             |      | Closure | web          |
|        | GET|HEAD | api/user      |      | Closure | api,auth:api |
|        | GET|HEAD | post/{postId} |      | Closure | web          |
+--------+----------+---------------+------+---------+--------------+
文章来源:https://dev.to/lampewebdev/learning-laravel-6-and-vuejs-for-javascript-nodejs-developer-part-4-basics-of-routing-in-larvel-8e1