laravel5.1框架基础之路由详解

本文实例讲述了laravel5.1框架基础之路由。分享给大家供大家参考,具体如下:

我在学习Laravel5.1,虽然刚刚开始,认识很浅,但还是需要做做归纳,清晰认识
建议大家到laravel学院学习laravel

1、路由(app/routes.php)

  • 在routes.php中进行路由设置,;
  • 作为访问的统一入口,是控制器的统一调度;
  • 没有配置路由,就没有正确地访问路径;
  • 路由需要自己规定一定的规则,方便自己查看、使用、理解;

2、路由基本类型及使用示例

  • get
Route::get('articles','ArticleController@index');

Route::get('db',function(){
  $name = DB::connection()->getDatabaseName();
  echo $name;
});
  • post
Route::post('article/update','ArticleController@update');
  • match

匹配[]中的请求方式

Route::match(['get','post'],'/hello',function(){
  return "match";
});
  • any

匹配所有请求方式

Route::any('/hello',function(){
  return "any";
});

3、从路由获取参数

  • 必用参数
Route::get('/blog/{name}',function($name){
  return $name; // 返回name显示
});

即除了 /blog/{name}的路由类型,都不能进来

  • 可选参数
Route::get('/blog/{name?}',function($name = 'name'){
  return $name; // 返回name显示,如果没设置就取默认值
});

即设置了默认值,路由中加了 ? 未输入参数则使用默认值

  • 正则参数

正则可以更灵活些,匹配更多需求。

Route::get('/blog/{id?}',function($id="1"){
  return "{$id}";//输出blog的ID,
})->where('name','^\d+$');//正则匹配为只能是数字,不然将无法找到路由;
  • 参数全局约束

在app/Providers/RouteServiceProvider的boot(Router $router)方法作如下修改:

public function boot(Router $router)
{
  $router->pattern('id','^\d+$');
  parent::boot($router);//将id全局限制为数字
}

boot()方法在每个服务提供者(Providers)类中都有用到,将再Providers启动方法执行后执行

可以通过boot()方法对Providers实现依赖注入

4、路由还可以做

给路由起个别名或者分个组
防CSRF攻击
Restful风格路由
详细内容

X、 app/routes.php 注释翻译(拙劣练习)

自从开始接触laravel和github发现,越来越难以逃避自己拙劣的英语,我该开始不再畏惧,好好面对,所以开始将laravel源码中出现的英文注释逐步进行翻译,待自己的对框架熟悉时候,再添加自己的中文注释,来强化自己的认识。

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
/*
|--------------------------------------------------------------------------
| 应用路由
|--------------------------------------------------------------------------
|
| 你可以很轻松地在这里注册所有的路由。
| 简单地告诉laravel,当特定地址被请求的时候,访问对应的控制器,使地址得到响应。
|
*/

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

(0)

相关推荐

  • 修改Laravel5.3中的路由文件与路径

    前言 大家可能没有注意到, 在 Laravel 4 以及更老版本中, 路由逻辑是性能上的一个瓶颈--特别是对于有很多路由定义的应用而言. 一个只有几百条路由定义的 Laravel 站点, 框架光注册路由就需要半秒多的时间. 不过以后不用担心这个问题了, 因为 Laravel 5 引入了 路由缓存(route caching), 可以大大优化路由的性能(闭包方式定义的路由不能缓存, 所以该把所有的闭包路由定义都移到控制器中了). 1.回顾Laravel 5.2中路由的修改 在 Laravel 5.

  • Laravel学习教程之路由模块

    前言 本文主要给大家介绍的是关于Laravel路由模块的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 备注:本文是基于Laravel 5.4版本的路由模块代码进行分析书写: 模块组成 下图展示了路由模块中各个文件的关系,并进行简要说明: 剖析 服务提供者 看Laravel模块,首先找ServiceProvider文件,这是模块与IOC容器交互的入口,从这个文件,可以看出该模块提供向系统提供了哪些服务: public function register() { //

  • laravel中命名路由的使用方法

    laravel提供了很多magic方法来,先来讲讲命名路由的使用,有两种方法非常便捷. 命名路由让你可以更方便的为特定路由生成 URL 或进行重定向.你可以使用 as 数组键指定名称到路由上 1.第一种:通过route路由中的as关键字来实现 Route::get('api/user',['as'='web.user'],'messageController@userInformation'); 2.第二种:通过Route的magic方法name来实现命名路由 Route::get('api/u

  • Laravel框架路由设置与使用示例

    本文实例讲述了Laravel框架路由设置与使用.分享给大家供大家参考,具体如下: Laravel安装,这里使用一键安装包. 使用PHP内置的Web服务器,在PHP文件夹下运行命令行 php -S 0.0.0.0:1024 一.设置路由 路由文件在app\HTTP\routes.php,在代码中增加 Route::get('/hi', function () { return 'hello world'; }); 我们观察到,这份PHP文件里已经有 Route::get('/', function

  • Laravel中重写资源路由自定义URL的实现方法

    前言 本文主要给大家介绍了关于Laravel中重写资源路由自定义URL的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 重写原因 近期在使用Laravel开发项目过程中,为了简化路由代码使用了Laravel的资源路由,Route::resource('photo', 'PhotoController'); 在默认情况下,Laravel生成的路由表如下: 动作 路径 Action 路由名称 GET /photo index photo.index GET /photo/c

  • Laravel最佳分割路由文件(routes.php)的方式

    前言 Laravel 的路由功能很强大,默认都是定义在 routes.php 文件中,随着项目越来越大,我们需要的定义的路由越来越多,想象一下,如果几百上千个路由都定义在一个文件中,如何去维护?也许还有不同的人都在同一个文件定义路由,这就造成了冲突,因此我们需要分割 routes.php 文件. 下面介绍一种很优雅的方式. 在 app/Providers/RouteServiceProvider.php 的 map 方法中可以如下定义: public function map(Router $r

  • Laravel框架模板加载,分配变量及简单路由功能示例

    本文实例讲述了Laravel框架模板加载,分配变量及简单路由功能.分享给大家供大家参考,具体如下: 作为世界上第一的PHP框架,学习Laraver势在必行,虽然国内盛行ThinkPHP,但是多会一个框架总是对自己有好处的. 通过前面的文章Laravel框架在本地虚拟机快速安装的方法,我们已经可以顺利安装Laravel 安装之后,在目录laravel\app\Http下,有一个routes.php文件,重点了,这个就是控制全站的路由文件. Route::get('/', function () {

  • Laravel 5框架学习之路由、控制器和视图简介

    查看 app/Http/routes.php 复制代码 代码如下: Route::get('/', 'WelcomeController@index'); @是一个界定符,前面是控制器,后面是动作,表示当用户请求url / 的时候,执行控制器 WelcomeController 中的 index 方法 复制代码 代码如下: app/http/controllers/welcomecontroller.php public function index() { return view('welco

  • Laravel框架路由配置总结、设置技巧大全

    基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码 代码如下: Route::get('/', function() { return 'Hello World'; }); 基本 POST 路由 复制代码 代码如下: Route::post('foo/bar', function() { return 'Hello World'; }); 注册一个路由以响应所有 HT

  • Laravel中获取路由参数Route Parameters的五种方法示例

    前言 大家都知道Laravel 获取路由参数的方式有很多,并且有个小坑,现汇总如下,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 假设我们设置了一个路由参数: /** * 定义路由参数名称分别为: param1,param2 */ Route::get('/{param1}/{param2}', 'TestController@index'); 现在我们访问 http://test.dev/1/2 在 TestController 中: /** * 路由参数获取方法 * *

  • 跟我学Laravel之路由

    基本路由 应用中的大多数路都会定义在 app/routes.php 文件中.最简单的Laravel路由由URI和闭包回调函数组成. 基本 GET 路由 复制代码 代码如下: Route::get('/', function() {     return 'Hello World'; }); 基本 POST 路由 复制代码 代码如下: Route::post('foo/bar', function() {     return 'Hello World'; }); 注册一个可以响应任何HTTP动作

随机推荐