命名路由是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。
<a href="{{ route('student.details') }}">Student</a>
上面的代码从学生页面导航到student.details, 这是命名的路线。
输出:
说明
当我们输入根目录的路由(即localhost / laravelproject / public /)时, 将在上面的屏幕快照中显示学生的视图, 该屏幕快照显示了学生的链接。当我们单击“学生”链接时, 将出现新页面, 其命名路线为Student.details。
评论前必须登录!
注册