Laravel 路由参数

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

我们可以使用两种类型的参数

  • 必选参数
  • 可选参数
Laravel Routing Parameters

必选参数

必选参数是我们传递在 URL 中的参数。 有时您想捕获 URI 的某些段,那么可以通过将参数传递给 URL 来完成。 例如,您想从 URL 捕获用户 ID。

让我们看看没有路由参数的例子。

输出

当我们输入 URL "localhost/laravelproject/public/" 时。

Laravel Routing Parameters

当我们输入 URL "localhost/laravelproject/public/about" 时。

Laravel Routing Parameters

当我们输入 URL "localhost/laravelproject/public/contact" 时。

Laravel Routing Parameters

让我们看一个带有路由参数的例子。

路由参数用 {} 括号括起来,参数必须包含字母字符。 它不应包含 '-' 字符,可以使用 '_' 字符代替该字符。

路由参数在路由回调中可用。 路由参数的语法如下

回调/控制器参数的名称

其中控制器参数是路由参数。

输出

Laravel Routing Parameters

让我们看一个带有多个路由参数的例子。

输出

Laravel Routing Parameters

可选参数

假设您想偶尔指定路由参数,为了实现这一点,您可以将路由参数设为可选。 要使路由参数可选,您可以在参数名称后放置 '?' 运算符。 如果您想提供可选参数,请确保您也为变量提供了默认值。

让我们通过一些例子来理解。

示例 1

当我们没有向 URL 传递任何变量时,输出将是

Laravel Routing Parameters

当我们在 URL 中传递 'akshita' 时,输出将是

Laravel Routing Parameters

从上面的输出中,我们观察到我们在 URL 中传递的参数是可选的。 由于我们已将参数的默认值设置为 Null,因此如果我们不传递任何参数,它将返回 null。 如果我们在 URL 中传递参数,则将显示该参数的值。

示例 2

在上面的例子中,我们提供了默认值 'himani'。

输出

Laravel Routing Parameters

在上面的例子中,我们没有传递任何参数,因此返回默认值。

Laravel Routing Parameters

正则表达式约束

这些是可以通过在路由实例上使用 where 方法来格式化路由参数的约束。 'where' 方法接受参数的名称和正则表达式约束,该约束定义了应该如何约束参数。

让我们通过一些例子来理解。

示例 1

假设我们想传递用户名作为仅包含字母字符的路由参数。


Laravel Routing Parameters

示例 2

让我们考虑一个仅接受数值的示例。


Laravel Routing Parameters
Laravel Routing Parameters

示例 3

让我们考虑一个接受字母数字字符的示例。


Laravel Routing Parameters

全局约束

您总是希望通过正则表达式约束路由参数;然后您可以使用 pattern 方法。 您可以在 RouteServiceProvider 的 boot 方法中定义这些模式。

当我们有多个路由并且将相同的约束应用于所有路由时,可以使用全局约束。 在全局约束中,我们不必使用 where 子句单独将约束应用于每个路由,我们只需要在 boot() 方法中定义模式,它将应用于所有路由。

让我们通过一个例子来理解这一点。

步骤 1:在 RouteServiceProvider.php 文件的 boot 方法中添加模式。

步骤 2:在 web.php 文件中添加路由。

输出

当我们向 '/user' URL 传递路由参数时,输出将是

Laravel Routing Parameters

当我们向 '/post' URL 传递路由参数时,输出将是

Laravel Routing Parameters
下一个主题Laravel命名路由