📜  laravel 路由生成 url 命名路由 - Html (1)

📅  最后修改于: 2023-12-03 15:02:38.500000             🧑  作者: Mango

Laravel 路由生成 URL 命名路由

在 Laravel 中,使用命名路由可以为路由指定一个唯一的名称,方便我们在生成 URL 时进行调用。本文将介绍如何在 Laravel 中使用命名路由生成 URL。

定义命名路由

在定义路由时,使用 name() 方法为路由指定一个名称即可。

Route::get('user/profile', function () {
    // ...
})->name('profile');
生成 URL

在需要生成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 文档