📅  最后修改于: 2023-12-03 15:02:38.500000             🧑  作者: Mango
在 Laravel 中,使用命名路由可以为路由指定一个唯一的名称,方便我们在生成 URL 时进行调用。本文将介绍如何在 Laravel 中使用命名路由生成 URL。
在定义路由时,使用 name()
方法为路由指定一个名称即可。
Route::get('user/profile', function () {
// ...
})->name('profile');
在需要生成URL的地方,可以使用 route()
函数来生成URL。使用 route()
函数时,将定义的路由名称作为第一个参数传递进去即可。
<a href="{{ route('profile') }}">用户资料</a>
如果我们需要在生成 URL 时传递参数,只需将参数作为第二个参数传入 route()
函数中即可。
Route::get('user/{id}/photos', function ($id) {
// ...
})->name('photos');
<a href="{{ route('photos', ['id' => 1]) }}">我的相册</a>
如果需要在 URL 中使用已定义的路由参数,可以使用数组键名 $key
来传递参数:
Route::get('user/{id}/posts/{post}', function ($id, $post) {
// ...
})->name('posts.show');
<a href="{{ route('posts.show', ['id' => 1, 'post' => 2]) }}">查看帖子</a>
在有多个路由文件的复杂应用程序中,可以使用命名空间来区分不同的路由文件。
// app/Http/Controllers/Admin/UsersController.php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class UsersController extends Controller
{
// ...
}
// routes/admin.php
Route::namespace('Admin')->group(function () {
// 控制器的 URI 前缀是 '/admin'
Route::get('users', 'UsersController@index');
});
<a href="{{ route('admin.users.index') }}">管理后台用户列表</a>
以上就是使用命名路由生成 URL 的方法。如果您还有任何疑问,请参考 Laravel 文档。