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;  
})); 
Laravel 路由别名

查看路由别名

通过以下命令查看路由的别名
php artisan route:list
Laravel 路由别名

以上显示了路由和别名的关系,这里路由/index/hello 对应的别名是 hello2。

路由别名参数

设置路由别名的参数,如下:

Route::get('user/{id}/profile',function($id)  
{  
   $url=route('profile',['id'=>100]);  
    return $url;  
})->name('profile'); 
Laravel 路由别名

路由别名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>