laravel路由别名是laravel的一个重要特性。路由别名指的是给路由起一个名字或者叫做昵称,这样一来我们可以通过这个路由别名获取生成的url。
路由别名不是给url一个类似于短网址的方式访问,而是给路由一个别名或者昵称,用这个别名或者说是昵称生成url,这样在我们修改web.php中路由的时候不用去修改页面中通过route()函数别名生成的url。
路由别名的定义
通过路由的name方法来定义路由url的别名,如下:
Route::get('/index/hello', function()
{
return "index,hello";
}) -> name('hello2');
指定控制器路由的别名
Route::get('index/hello', 'Indexcontroller@hello') -> name('hello2');
以上路由的别名是 hell2o
。生成路由别名的url
通过上面的方法定义了路由别名,我们可以通过简单的route函数生成该url。
// 获取生成的别名url
$url = route('hello2');
//重定向到别名url
return redirect()->route('hello2');
通过路由别名我们可以缩短一个很长路由用于简化访问,例如。
Route::get('index/hello/example',array
('as'=>'example',function()
{
$url=route('example');
return "链接地址 : " .$url;
}));
查看路由别名
通过以下命令查看路由的别名php artisan route:list
以上显示了路由和别名的关系,这里路由/index/hello 对应的别名是 hello2。
路由别名参数
设置路由别名的参数,如下:
Route::get('user/{id}/profile',function($id)
{
$url=route('profile',['id'=>100]);
return $url;
})->name('profile');
路由别名url跳转
1.首先在web.php中定义路由。
Route::Get('/',function()
{
return view('home');
});
Route::get('article/details',function()
{
$url=route('article.details');
return $url;
})->name('article.details');
2. 视图文件夹中创建 home.blade.php文件,内容如下:<a href="{{ route('article.details') }}">Student</a>