📜  Laravel中的命名路由

📅  最后修改于: 2021-01-05 10:34:24             🧑  作者: Mango

命名路线

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

定义命名路径的语法:

我们可以通过将name方法链接到路由定义上来定义命名路由:

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

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

路线:: get('student / details','studentcontroller @ showdetails')-> name('student_details');

生成命名路由的URL

将命名路由分配给给定路由后,便可以在生成URL或通过全局路由函数重定向时使用该路由的名称。

//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 / example”是student.details

注意:使用命名路由的好处是,如果我们更改路由的位置,那么链接也将起作用,或者可以说,这对于动态更改URL是有益的。

命名路由中的参数

命名路由也可用于定义参数。这些参数可以作为第二个参数传递给route函数,这些参数会自动插入到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');
 return $url;
})->name('student.details');

步骤2:移至resources文件夹,然后单击views文件夹。

步骤3:创建一个新文件,并将其命名为student.blade.php

上面的代码从学生页面导航到student.details ,这是命名的路线。

输出:


说明

当我们输入根目录的路由(即localhost / laravelproject / public /)时,将在上面的屏幕快照中显示学生的视图,该屏幕快照显示了学生的链接。当我们单击“学生”链接时,将出现新页面,该页面的命名路线为student.details