菜单

Laravel框架路由配置及设置技巧全解,Laravel框架路由配置总结

2020年4月30日 - 前端排行
Laravel框架路由配置及设置技巧全解,Laravel框架路由配置总结

Laravel框架在PHP开垦中应用极度周围,本文主要对Laravel框架中的路由设置作详细的牵线,Laravel的路由配置特别灵活,怎么着设置好路由对PHP应用来讲也是极其主要的。

基本路由

图片 1

您的应用程序的超越六分之三路由将要 app/routes.php 文件中定义。Laravel
中最简便的路由由多少个 URubiconI 和叁个闭包调用组成。

基本路由

基本 GET 路由复制代码
代码如下:Route::get{return ‘Hello World’;}State of Qatar;基本 POST 路由复制代码 代码如下:Route::post{return ‘Hello
World’;}卡塔尔;登记三个路由以响应全数 HTTP 方法复制代码 代码如下:Route::any{ return ‘Hello
World’;}卡塔尔(قطر‎;抑遏叁个路由必需通过 HTTPS 访问复制代码 代码如下:Route::get(‘foo’, array{
return ‘Must be over HTTPS’;}卡塔尔(قطر‎State of Qatar;平时您须要依照路由产生UEnclaveLs,您能够透过动用 U冠道L::to 方法:复制代码 代码如下:$url = UHuayraL::to;

你的应用程序的大比非常多路由将要 app/routes.php 文件中定义。Laravel
中最简易的路由由四个 U兰德酷路泽I 和二个闭包调用组成。

路由参数复制代码
代码如下:Route::get(‘user/{id}’, function{return ‘User
‘.$id;}卡塔尔(قطر‎;可选的路由参数复制代码
代码如下:Route::get(‘user/{name?}’, function{return
$name;}卡塔尔;带私下认可值的可选的路由参数复制代码 代码如下:Route::get(‘user/{name?}’,
function{return $name;}卡塔尔;带正则表明式约束的路由复制代码 代码如下:Route::get(‘user/{name}’,
function->where;Route::get(‘user/{id}’, function->where;

基本 GET 路由

路由过滤器

Route::get('/', function()
{
return 'Hello World';
});

路由过滤器提供了一种范围访问钦赐路由的简短的方式,那在你要求为您的站点成立要求表明区域的时候非常管用。Laravel
框架中包涵了部分路由过滤器,比方 auth 过滤器、auth.basic 过滤器、guest
过滤器、以至 csrf 过滤器。它们被存放在 app/filters.php 文件中。

基本 POST 路由

概念二个路由过滤器复制代码
代码如下:Route::filter{if < 200卡塔尔{return Redirect::to;
若是三个响应从三个路由过滤器中回到,这一个响应即被认为是以此乞请的响应,路由将不被执行,任何关于这些路由的
after 过滤器也将被废除推行。

Route::post('foo/bar', function()
{
return 'Hello World';
});

为二个路由钦点一个路由过滤器复制代码
代码如下:Route::get(‘user’, array(‘before’ => ‘old’,
function(State of Qatar{return ‘You are over 200 years
old!’;}));为叁个路由钦定三个路由过滤器

挂号二个路由以响应全体 HTTP 方法

复制代码 代码如下:Route::get(‘user’,
array(‘before’ => ‘auth|old’, function(卡塔尔国{return ‘You are
authenticated and over 200 years old!’;}));内定路由过滤器参数复制代码 代码如下:Route::filter(‘age’,
function($route, $request, $value卡塔尔(قطر‎{//}卡塔尔(قطر‎;Route::get(‘user’,
array(‘before’ => ‘age:200’, function(卡塔尔(قطر‎{return ‘Hello World’;}卡塔尔国State of Qatar;
当路由过滤器选拔到作为第多个参数的响应 $response:复制代码 代码如下:Route::filter(‘log’,
function($route, $request, $response,
$value卡塔尔(قطر‎{//}卡塔尔国;基本路由过滤器的格局

Route::any('foo', function()
{
   return 'Hello World';
});

你可能希望依照 UCRUISERI 为一组路由钦定过滤器。复制代码
代码如下:Route::filter{//}State of Qatar;Route::when;在上面包车型大巴事例中,admin
过滤器将选取带全部以 admin/
起首的路由。星号作为多少个通配符,将适配到独具字符的咬合。

强迫叁个路由必须通过 HTTPS 访谈

你也能够通过点名 HTTP 方法限定形式过滤器:

Route::get('foo', array('https', function()
{
    return 'Must be over HTTPS';
}));

复制代码 代码如下:Route::when(‘admin/*’,
‘admin’, array;

日常您须求依照路由产生 UPRADOLs,您可以由此选拔 URubiconL::to 方法:

过滤器类

$url = URL::to('foo');

对此高级级的过滤器,您能够应用三个类代替闭包函数。因为过滤器类是坐落应用程序之外的
IoC 容器,您能够在过滤器中选取重视注入,更易于测量检验。

路由参数

概念一个过滤器类复制代码
代码如下:class FooFilter {public function filter(卡塔尔{// Filter
logic…}}登记三个基于类的过滤器复制代码 代码如下:Route::filter;

Route::get('user/{id}', function($id)
{
return 'User '.$id;
});

命名路由

可选的路由参数

命名路由在更易于在变化跳转或 U福睿斯Ls
时内定路由。您能够像这么为路由钦点叁个名字:复制代码 代码如下:Route::get(‘user/profile’,
array(‘as’ => ‘profile’,
function;您也得感觉调整器的形式钦命路由名字:复制代码 代码如下: Route::get(‘user/profile’,
array(‘as’ => ‘profile’, ‘uses’ => ‘UserController@showProfile’卡塔尔国卡塔尔;
以往您在生成 U奥迪Q3Ls 或跳转的时候利用路由的名字:

Route::get('user/{name?}', function($name = null)
{
return $name;
});

复制代码 代码如下:$url =
URL::route;$redirect = Redirect::route;您可以行使 currentRouteName
方法获得二个路由的名字:

带私下认可值的可选的路由参数

复制代码 代码如下:$name =
Route::currentRouteName(卡塔尔;

Route::get('user/{name?}', function($name = 'John')
{
return $name;
});

路由组

带正则表明式约束的路由

微微时候你可能希望利用过滤器到一组路由。您不必要为各样路由钦点过滤器,能够运用路由组:复制代码 代码如下:Route::group(array,
function(卡塔尔国{Route::get{// Has Auth Filter}卡塔尔;Route::get(‘user/profile’,
function(卡塔尔{// Has Auth Filter}卡塔尔(قطر‎;}卡塔尔;

Route::get('user/{name}', function($name)
{
//
})
->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id)
{
//
})
->where('id', '[0-9]+');

子域名路由

路由过滤器

Laravel 路由也能够管理通配符的子域名,何况从域名中获取通配符参数:

路由过滤器提供了一种范围访谈钦赐路由的简短的章程,那在你必要为您的站点创制须要证实区域的时候极平价。Laravel
框架中包罗了部分路由过滤器,举个例子 auth 过滤器、auth.basic 过滤器、guest
过滤器、以至 csrf 过滤器。它们被寄存在 app/filters.php 文件中。

注册子域名路由复制代码
代码如下:Route::group(array(‘domain’ => ‘{account}.myapp.com’State of Qatar,
function(State of Qatar{Route::get(‘user/{id}’, function;}卡塔尔国;

概念一个路由过滤器

路由前缀

Route::filter('old', function()
{
if (Input::get('age') < 200)
{
return Redirect::to('home');
}
});

一组路由得以通过在性质数组中使用 prefix 选项为路由组增多前缀:

假定三个响应从八个路由过滤器中回到,那个响应即被认为是其一需要的响应,路由将不被施行,任何有关那些路由的
after 过滤器也将被撤除施行。

为路由组增加前缀复制代码
代码如下:Route::group(array, function(卡塔尔{Route::get{//}卡塔尔;}State of Qatar;

为贰个路由钦点四个路由过滤器

路由模型绑定

Route::get('user', array('before' => 'old', function()
{
return 'You are over 200 years old!';
}));

模型绑定提供了贰个简便的秘诀向路由中注入模型。举例,不唯有注入二个客商的
ID,您能够依照内定的 ID 注入整个客商模型实例。首先利用 Route::model
方法钦点所供给的模子:

为贰个路由钦定多少个路由过滤器

为模型绑定八个变量复制代码
代码如下:Route::model;然后, 定义三个包括 {user} 参数的路由:复制代码 代码如下:Route::get(‘profile/{user}’,
function;

Route::get('user', array('before' => 'auth|old', function()
{
return 'You are authenticated and over 200 years old!';
}));

因为大家早已绑定 {user} 参数到 User 模型,二个 User
实例将被注入到路由中。因而,比方三个 profile/1 的央浼将注入一个 ID 为 1
的 User 实例。

点名路由过滤器参数

在意: 固然在数据库中尚无找到这么些模型实例,将吸引404荒诞。

Route::filter('age', function($route, $request, $value)
{
//
});
Route::get('user', array('before' => 'age:200', function()
{
return 'Hello World';
}));

倘诺你希望钦命您自身定义的尚未找到的表现,您可以为 model
方法传递三个闭包作为第多个参数:复制代码
代码如下:Route::model(‘user’, ‘User’, function(State of Qatar{throw new
NotFoundException;}卡塔尔国; 临时你希望利用本身的法子管理路由参数,能够选用Route::bind 方法:复制代码
代码如下:Route::bind(‘user’, function{return
User::where->first;引发404荒唐

当路由过滤器接纳到作为第八个参数的响应 $response:

有三种办法在路由中手动触发一个404错误。首先,您能够接收 App::abort
方法:

Route::filter('log', function($route, $request, $response, $value)
{
//
});

复制代码 代码如下:App::abort;

基本路由过滤器的情势

附带,您能够抛出叁个Symfony\Component\HttpKernel\Exception\NotFoundHttpException
的实例。

你大概希望依照 U凯雷德I 为一组路由钦定过滤器。

更加多关于管理404相当和为那一个不当使用使用自定义响应的音讯方可在 错误
章节中找到。

Route::filter('admin', function()
{
//
});
Route::when('admin/*', 'admin');

路由至调控器

在上头的例子中,admin 过滤器将应用带所有以 admin/
初阶的路由。星号作为三个通配符,将适配到具有字符的结缘。

Laravel 不仅仅允许你路由至闭包,也足以路由至调整器类,以致同意创建财富支配器.

你也足以由此点名 HTTP 方法限制形式过滤器:

越来越多音信请访谈 调整器 文书档案。

Route::when('admin/*', 'admin', array('post'));

过滤器类

对此高级级的过滤器,您能够采纳五个类替代闭包函数。因为过滤器类是放在应用程序之外的
IoC 容器,您可以在过滤器中央银行使信任注入,更易于测验。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图