Laravel 命名路由

2024年11月16日 Laravel 命名路由 极客笔记

Laravel 命名路由

命名路由是Laravel框架中的一个重要功能。它允许你在生成URL或重定向到特定路由时引用这些路由。简而言之,我们可以说命名路由是为路由提供一个昵称的方式。

定义命名路由的语法:

我们可以通过在路由定义上链式调用name方法来定义命名路由:

Route::get('student/details', function()
{
    //
}) -> name('student_details');

我们还可以为控制器动作指定命名路由:

Route::get(‘student/details’, ‘studentcontroller@showdetails’) – > name(‘student_details’);

生成命名路由的URLs

一旦你为某个路由分配了一个命名路由,你就可以在生成URLs或通过全局路由函数重定向时使用路由的名称。

//Generating URLs
$url= route('student_details');
//Generating Redirects...
return redirect() -> route('student_details');

假设我们在URL中有很多参数;在这种情况下,我们可以为URL提供一个简短的名称。我们使用一个包含所有内容的数组,并将其作为第二个参数出现在get()函数中。通过一个示例来理解。

Route::get('student/details/example',array 
('as'=>'student.details',function()
{
   url=route('student.details');
   return "The url is : " .url;
}));

输出:

我们还可以在Git bash窗口中查看路由的名称。

  • 首先,打开Git Bash窗口。
  • 在Git Bash窗口中切换到项目文件夹,并键入命令 php artisan route:list

上述的输出屏幕显示了URL及其对应的名称,即URL的名称为 student.details ,即”student/details/example”的名称为student.details。

注意: 使用命名路由的好处是,如果我们更改路由的位置,那么链接仍将有效,或者我们可以说它有助于动态更改URL。

命名路由中的参数

命名路由也可以用来定义参数。参数可以作为第二个参数传递给路由函数,并且这些参数会自动插入到URL的正确位置:

 Route::get('user/{id}/profile',function(id)
{url=route('profile',['id'=>100]);
    return $url;
})->name('profile');

输出:

使用命名路由从一个路由导航到另一个路由

我们也可以通过使用 命名路由 从一个路由导航到另一个路由。

步骤 1:web.php 文件中定义路由。

Route::Get('/',function()
{
  return view('student');
});

Route::get('student/details',function()
{
  url=route('student.details');
 returnurl;
})->name('student.details');

步骤 2: 移动到资源文件夹,然后点击视图文件夹。

步骤 3: 创建一个新的文件,名称为 student.blade.php

<a href="{{ route('student.details') }}">Student</a>

上述代码从学生页面导航到名为 student.details 的路由。

输出:

解释

当我们进入根目录的路由时,即 localhost/laravelproject/public/ ,在上面的截图中显示了学生视图,其中显示了学生的链接。当我们点击学生链接时,将出现一个名为 student.details 的新页面。

本文链接:http://so.lmcjl.com/news/17918/

展开阅读全文