📅  最后修改于: 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窗口检查路线名称。
上面的输出屏幕显示了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 。