Laravel 基础路由

2025年3月17日 | 阅读 3 分钟

路由是 Laravel 中的一个基本概念。 路由的主要功能是将您的应用程序请求路由到相应的控制器。

默认路由文件

所有 Laravel 路由都在位于 routes 目录中的路由文件中定义。 当我们创建一个项目时,会在项目内创建一个路由目录。 route/web.php 目录包含 Web 界面路由文件的定义。 web.php 中的路由分配了 web 中间件组,该组提供会话状态和 CSRF 保护等功能。 在 routes/api.php 中定义的路由分配了 API 中间件组,并且它们是无状态的。

我们将首先在 routes/web.api 文件中定义路由。 在 routes/web.php 中定义的路由可以通过在浏览器中输入定义的 URL 来访问。 让我们通过一个例子来理解这一点。

默认路由文件的定义。

在上述情况下,Route 是定义静态方法 get() 的类。 get() 方法包含参数 '/' 和 function() 闭包。 '/' 定义根目录,function() 定义 get() 方法的功能。

在上面的路由中,url 是 '/'; 因此,我们在 Web 浏览器中输入了 localhost/laravelproject/public URL

输出

Laravel Basic Routing

由于该方法返回 view('welcome'),因此上述输出显示了 Laravel 的欢迎视图。

让我们看另一个例子。

现在,我们在本例中提供另一个 URL。

在上面的例子中,路由是在 URL 为 '/example' 中定义的,因此我们需要在 Web 浏览器中输入 URL "localhost/laravelproject/public/example"。

输出

Laravel Basic Routing

CSRF 保护

指向在 Web 路由文件中定义的 Post、Put 或 Delete 路由的 HTML 表单应包含 CSRF 令牌字段。 如果未包含 CSRF 令牌字段,则请求将被拒绝。

路由器定义了可以响应以下 HTTP 谓词的路由

Route::get($uri, $callback);

Route::post($uri, $callback);

Route::put($uri, $callback);

Route::patch($uri, $callback);

Route::delete($uri, $callback);

Route::options($uri, $callback);

有时会出现您需要注册一个响应多个 HTTP 谓词的路由的情况,这可以通过使用 match() 方法来实现。 有时您希望注册一个响应所有 HTTP 谓词的节点,因此我们使用 any() 方法。

两个最常用的路由方法是

  • Redirect() 方法
    Redirect() 方法用于从一个 URL 导航到另一个 URL。 此方法提供了一种方便或快捷的方式从一个 URI 移动到另一个 URI。 借助此方法,您无需定义完整的路由。
    使用 redirect() 方法有两种方法
    第一种方法是在 get() 方法中声明 redirect() 方法

第二种方法是直接访问 redirect() 方法。

在上述情况下,这两个路由都从 /hello 导航到根目录,即 '/'。

  • View() 方法
    View() 方法用于返回另一个 URL 的视图。

下一个话题Laravel 路由参数