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窗口中查看路由的名称。
上述的输出屏幕显示了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 的新页面。