📅  最后修改于: 2023-12-03 14:43:46.397000             🧑  作者: Mango
在 Laravel 中,能够轻松地处理 URL 段是非常重要的。URL 段允许您在路由中定义动态部分的 URL,以便您可以将它们作为控制器方法的参数传递。
在我们看到如何处理 URL 段之前,首先让我们看看如何在 Laravel 中定义它们。
假设我们要将 “/user/{id}” 的 URL 定义为一个路由,并将其绑定到 UserController@show
方法。这样我们就可以像这样定义它:
Route::get('/user/{id}', 'UserController@show');
在这里,我们使用 {id}
作为我们的 URL 段。
现在我们已经定义了 URL 段,如何在控制器方法中处理它们呢?
当我们定义 URL 段时,我们可以将它们作为控制器方法的参数,该参数将在调用该方法时自动传递。例如,在我们的例子中,我们可以将 id
作为 UserController@show
方法的参数:
public function show($id)
{
// do something with $id
}
在这里,$id
参数将包含 URL 段的值。
您可能会想要定义一个可选的 URL 段。在 Laravel 中,我们可以在 URL 段的末尾加上 ?
来达到这个目的。例如:
Route::get('/user/{id?}', 'UserController@show');
现在,“/user” 和 “/user/1” 都将调用 UserController@show
方法。如果没有提供 ID,$id
参数将为 null
。
最后,我们可以给 URL 段命名。这样做的好处是减少了硬编码 URL 的使用,可以在应用程序的其他位置引用它。命名 URL 段是通过在 URL 段前面加上一个冒号以及一个名称来实现的。例如:
Route::get('/user/{id}', 'UserController@show')->name('user.show');
现在我们可以使用 route()
函数来构建 URL,例如:
$url = route('user.show', ['id' => 1]);
在这里,$url
将包含 /user/1
。
在 Laravel 中,处理 URL 段是非常容易的。定义 URL 段时,我们可以将它们作为控制器方法的参数。我们还可以定义可选的 URL 段并给它们命名,以便在应用程序的其他地方引用它们。