Laravel框架在PHP开发中使用十分广泛,本文主要对Laravel框架中的路由设置作详细的介绍,Laravel的路由配置非常灵活,如何设置好路由对PHP应用来说也是相当关键的。

基本路由

您的应用程序的绝大多数路由将在 app/routes.php 文件中定义。Laravel 中最简单的路由由一个 URI 和一个闭包调用组成。

基本 GET 路由

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

基本 POST 路由

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

注册一个路由以响应所有 HTTP 方法

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

强制一个路由必须通过 HTTPS 访问

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

经常您需要根据路由产生 URLs,您可以通过使用 URL::to 方法:

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

路由参数

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

可选的路由参数

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

带默认值的可选的路由参数

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

带正则表达式约束的路由

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

路由过滤器

路由过滤器提供了一种限制访问指定路由的简单的方法,这在您需要为您的站点创建需要认证区域的时候非常有用。Laravel 框架中包含了一些路由过滤器,比如 auth 过滤器、auth.basic 过滤器、guest 过滤器、以及 csrf 过滤器。它们被存放在 app/filters.php 文件中。

定义一个路由过滤器

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

如果一个响应从一个路由过滤器中返回,这个响应即被认为是这个请求的响应,路由将不被执行,任何关于这个路由的 after 过滤器也将被取消执行。

为一个路由指定一个路由过滤器

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

为一个路由指定多个路由过滤器

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';}));

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

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

基本路由过滤器的模式

您可能希望根据 URI 为一组路由指定过滤器。

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

在上面的例子中,admin 过滤器将应用带所有以 admin/ 开头的路由。星号作为一个通配符,将适配到所有字符的组合。

您也可以通过指定 HTTP 方法约束模式过滤器:

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

过滤器类

对于高级的过滤器,您可以使用一个类代替闭包函数。因为过滤器类是位于应用程序之外的 IoC 容器,您能够在过滤器中使用依赖注入,更易于测试。

定义一个过滤器类

classFooFilter{publicfunctionfilter(){// Filter logic...}}

注册一个基于类的过滤器

Route::filter('foo','FooFilter');

命名路由

命名路由在更易于在生成跳转或 URLs 时指定路由。您可以像这样为路由指定一个名字:

Route::get('user/profile',array('as'=>'profile',function(){//}));

您也可以为控制器的方法指定路由名字:

Route::get('user/profile',array('as'=>'profile','uses'=>'UserController@showProfile'));

现在您在生成 URLs 或跳转的时候使用路由的名字:

$url = URL::route('profile');$redirect = Redirect::route('profile');

您可以使用 currentRouteName 方法获取一个路由的名字:

$name = Route::currentRouteName();

路由组

有些时候您可能希望应用过滤器到一组路由。您不必要为每个路由指定过滤器,可以使用路由组:

Route::group(array('before'=>'auth'),function(){Route::get('/',function(){// Has Auth Filter});Route::get('user/profile',function(){// Has Auth Filter});});

子域名路由

Laravel 路由也能够处理通配符的子域名,并且从域名中获取通配符参数:

注册子域名路由

Route::group(array('domain'=>'{account}.myapp.com'),function(){Route::get('user/{id}',function($account, $id){//});});

路由前缀

一组路由可以通过在属性数组中使用 prefix 选项为路由组添加前缀:

为路由组添加前缀

Route::group(array('prefix'=>'admin'),function(){Route::get('user',function(){//});});

路由模型绑定

模型绑定提供了一个简单的方法向路由中注入模型。比如,不仅注入一个用户的 ID,您可以根据指定的 ID 注入整个用户模型实例。首先使用 Route::model 方法指定所需要的模型:

为模型绑定一个变量

Route::model('user','User');

然后, 定义一个包含 {user} 参数的路由:

Route::get('profile/{user}',function(User $user){//});

因为我们已经绑定 {user} 参数到 User 模型,一个 User 实例将被注入到路由中。因此,比如一个 profile/1 的请求将注入一个 ID 为 1 的 User 实例。

注意: 如果在数据库中没有找到这个模型实例,将引发404错误。

如果您希望指定您自己定义的没有找到的行为,您可以为 model 方法传递一个闭包作为第三个参数:

Route::model('user','User',function(){thrownewNotFoundException;});

有时您希望使用自己的方法处理路由参数,可以使用 Route::bind 方法:

Route::bind('user',function($value, $route){returnUser::where('name', $value)->first();});

引发404错误

有两种方法在路由中手动触发一个404错误。首先,您可以使用 App::abort 方法:

App::abort(404);

其次,您可以抛出一个 Symfony\Component\HttpKernel\Exception\NotFoundHttpException 的实例。

更多关于处理404异常和为这些错误使用使用自定义响应的信息可以在 错误 章节中找到。

路由至控制器

Laravel 不仅允许您路由至闭包,也可以路由至控制器类,甚至允许创建 资源控制器.

laravel php配置,PHP Laravel框架路由配置及设置技巧全解相关推荐

  1. 实验07 路由器的基本配置和单臂路由配置实验报告

    这个格式可能有点问题,文档下载地址:https://download.csdn.net/download/mariodf/20211672?spm=1001.2014.3001.5503 一.实验名称 ...

  2. 计算机网络 实验六 静态路由配置,实验六-静态路由配置.doc

    实验六-静态路由配置 实验报告书 课程名称 计算机网络技术与应用 实验题目 实验六:静态路由配置 专业班级 2010级信息管理与信息系统2班 学 号 37号 姓 名 肖丹妮 指导教师 赵圆圆老师 计算 ...

  3. ENSP配置 实例四 默认路由配置

    ENSP默认路由配置 1,配置R1路由器 sys ##进入系统视图模式 [Huawei]sys R1 ##修改名字 [R1]int e0/0/0 ##进入接口 [R1-Ethernet0/0/0]ip ...

  4. 路由配置与管理——ISIS路由配置与管理

    IS-IS基本功能配置与管理 只有配置了IS-IS基本功能,才可组建IS-IS网络.IS-IS基本功能包括以下几项配置任务:创建IS-IS进程是配置网络实体名称.配置全局Level级别以及建立IS-I ...

  5. 路由配置与管理——静态路由配置与管理

    静态路由是一种最简单的路由,需手工配置,用一条指令指定静态路由的目的IP地址.子网掩码.下一跳IP地址,或者出接口.优先级等主要参数值就可以了.还可根据实际需要配置静态路由与BFD或者NQA的联动. ...

  6. 路由配置与管理——OSPF路由配置与管理1

    OSPF路由配置与管理 Ospf(开放式最短路径优先)是一个基于链路状态进行路由计算的动态路由协议,主要用于大中型网络.AR G3系列路由器支持OSPFv2和OSPFv3两种版本,OSPFv2仅支持I ...

  7. 路由器的基本配置和单臂路由配置

    实验名称 路由器的基本设置和单臂路由配置 任务一 路由器的基本配置 一.实验目标 1.掌握路由器几种常用配置方法: 2.掌握采用Console线缆配置路由器的方法: 3.掌握采用Telnet方式配置路 ...

  8. php yii框架路由,yii框架路由配置

    首先要在服务器配置(httpd.conf)中开启重写模块#开启重写模块,将其前面的#去掉 LoadModule rewrite_module modules/mod_rewrite.so #Direc ...

  9. 通用模型、全新框架,WavLM语音预训练模型全解

    (本文阅读时间:14分钟) 编者按:深度神经网络模型近年来虽然在各项语音任务上都有所进展,但却仍依赖于大量的标注数据.而自监督训练方法的出现和发展则在一定意义上缓解了该问题.近日,微软亚洲研究院与微软 ...

最新文章

  1. 蠕虫mysql_警惕!MySQL蠕虫再度对Windows发动攻击
  2. 关于火狐中ashx中输出javascript一闪而过的问题
  3. SciencePlots科研绘图
  4. JavaScript 全局对象
  5. 实验三《实时系统的移植》 20145222黄亚奇 20145213祁玮
  6. Install Eclipse 3.7 Indigo and configure Eclipse
  7. 少儿编程市场调研分析
  8. 计算机组成原理——补码一位乘(Booth算法)+举例+小白理解
  9. 计算导论与c语言基础pdf下载,Cousera 计算导论与C语言基础 学习笔记
  10. 【办公应用软件】万彩办公大师丨PDF页面修剪帮助文档
  11. SpringCloud神兽(二)之Ribbon
  12. 企业微信公众号运营技巧有哪些
  13. Python内置函数 max 详解
  14. 实现变色TextView及ViewPager指示器(原来可以这么简单)
  15. xshell进入管理员模式
  16. Joining multiple DataFrames only supported for joining on index
  17. 越来越稳!Kubernetes 1.8.0 版本发布
  18. supplier java8_Java 8之 Supplier示例
  19. [CNNA] 路由器基础
  20. bootstrap 后端模板

热门文章

  1. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
  2. 跨还是不跨?这是一个问题
  3. 用神经网络分类陀螺和遥远星体
  4. 用神经网络的分类行为理解质量到底是什么?
  5. html任务清单源码,JavaScript jQuery 任务清单 ToDoList
  6. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第4章-基于证据推理的多 Agent 分布式决策
  7. 【数理知识】《积分变换与场论》王振老师-第1章-傅里叶变换
  8. 【PC工具】建议收藏!一个有N多日常生活学习办公小工具的神奇网站,推荐在线工具网站...
  9. PHP代码静态分析工具PHPStan
  10. 互联网巨头们的广州“云”棋局