Laravel 路由参数2025年3月17日 | 阅读 3 分钟 我们可以使用两种类型的参数
![]() 必选参数必选参数是我们传递在 URL 中的参数。 有时您想捕获 URI 的某些段,那么可以通过将参数传递给 URL 来完成。 例如,您想从 URL 捕获用户 ID。 让我们看看没有路由参数的例子。 输出 当我们输入 URL "localhost/laravelproject/public/" 时。 ![]() 当我们输入 URL "localhost/laravelproject/public/about" 时。 ![]() 当我们输入 URL "localhost/laravelproject/public/contact" 时。 ![]() 让我们看一个带有路由参数的例子。 路由参数用 {} 括号括起来,参数必须包含字母字符。 它不应包含 '-' 字符,可以使用 '_' 字符代替该字符。 路由参数在路由回调中可用。 路由参数的语法如下 回调/控制器参数的名称 其中控制器参数是路由参数。 输出 ![]() 让我们看一个带有多个路由参数的例子。 输出 ![]() 可选参数假设您想偶尔指定路由参数,为了实现这一点,您可以将路由参数设为可选。 要使路由参数可选,您可以在参数名称后放置 '?' 运算符。 如果您想提供可选参数,请确保您也为变量提供了默认值。 让我们通过一些例子来理解。 示例 1 当我们没有向 URL 传递任何变量时,输出将是 ![]() 当我们在 URL 中传递 'akshita' 时,输出将是 ![]() 从上面的输出中,我们观察到我们在 URL 中传递的参数是可选的。 由于我们已将参数的默认值设置为 Null,因此如果我们不传递任何参数,它将返回 null。 如果我们在 URL 中传递参数,则将显示该参数的值。 示例 2 在上面的例子中,我们提供了默认值 'himani'。 输出 ![]() 在上面的例子中,我们没有传递任何参数,因此返回默认值。 ![]() 正则表达式约束这些是可以通过在路由实例上使用 where 方法来格式化路由参数的约束。 'where' 方法接受参数的名称和正则表达式约束,该约束定义了应该如何约束参数。 让我们通过一些例子来理解。 示例 1 假设我们想传递用户名作为仅包含字母字符的路由参数。 ![]() 示例 2 让我们考虑一个仅接受数值的示例。 ![]() ![]() 示例 3 让我们考虑一个接受字母数字字符的示例。 ![]() 全局约束您总是希望通过正则表达式约束路由参数;然后您可以使用 pattern 方法。 您可以在 RouteServiceProvider 的 boot 方法中定义这些模式。 当我们有多个路由并且将相同的约束应用于所有路由时,可以使用全局约束。 在全局约束中,我们不必使用 where 子句单独将约束应用于每个路由,我们只需要在 boot() 方法中定义模式,它将应用于所有路由。 让我们通过一个例子来理解这一点。 步骤 1:在 RouteServiceProvider.php 文件的 boot 方法中添加模式。 步骤 2:在 web.php 文件中添加路由。 输出 当我们向 '/user' URL 传递路由参数时,输出将是 ![]() 当我们向 '/post' URL 传递路由参数时,输出将是 ![]() 下一个主题Laravel命名路由 |
我们请求您订阅我们的新闻通讯以获取最新更新。