美文网首页
6.27——基本路由

6.27——基本路由

作者: DonnieZero | 来源:发表于2017-06-27 11:08 被阅读0次

6.27-7.4的任务:

1.阅读Laravel中文文档,建立项目进行尝试

2.加深对于sql的了解

3.看代码,乐器博物馆和新闻

记录-Laravel中文文档学习:

——Route的范式:Route::get($uri, $callback);     uri是路由的输入,callback是返回值,callback的位置是一个闭包,目前理解为一个函数???

——设定可选参数,需要设定默认值,否则闭包中可能缺少参数

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

return $name;

});

——正则约束,基本够用的格式:‘abc’ 写死的字符,‘[0-9][a-z][K-X]’ 一个范围内的字符,‘?’ 0或1个,‘+’ 1或多个, ‘{1,10}’ 控制字符串长度

Route::get('member/{id}/{name}',function($id,$name) {

return'hello '.$id.' '.$name;

})->where(['id'=>'u[0-9]{1,5}','name'=>'[0-z]+']);

——全局约束有什么作用??

——群组路由&命名路由,该例中群组路由的名称为‘group’,其附属的路由名称为‘group::name’,所以调用route方法生成Level2的url时,参数名称为‘group;;Level2’,但是在访问url时,地址输入为http://localhost/Learning/public/Level2,可见群组的名称只是在代码范围内给路由的一个“代号”,而并不是真正路由的一部分

Route::group(['as'=>'group::'],function(){

Route::get('Level2',['as'=>'Level2',function(){

returnroute('group::Level2');

}]);

});

——为命名路由生成URL

如果命名路由定义了参数,可以将该参数作为第二个参数传递给route函数。给定的路由参数将会自动插入 URL 中:

Route::get('make_file/{id}/profile', ['as' => 'profile', function ($id) {

$url = route('profile', ['id' => 1]);

return $url;

}]);

以上代码输入:http://localhost/Learning/public/make_url/15/profile

返回结果为:http://localhost/Learning/public/make_url/1/profile

可见该段代码将‘id’写死为1,无论路由中输入的{id}是什么,生成的都是id为1时的URL

尝试将代码里route函数中的第二个参数注释掉,即为route('profile'),运行结果报错,于是推测route()函数第一个参数是需要生成URL的route的名称,函数会在确认该route之后去判断该route中是否存在变量(比如该例中的id),为了验证该猜想,决定构造一个含有两个参数的route,然后只给route()函数两个参数,如果会报相同的错,说明猜想成立

//构造该路由用于探索route函数的工作机制

Route::get('make_url_2/{id}/{name}/profile', ['as'=>'2vars',function($id) {

$url= route('2vars',$id);

return$url;

}]);

果然报了Missing required parameters的错误,可见猜想成立

——Laravel有没有使用手册(有,已经找到了,顺便看一下怎么做CHM,好好玩)

——意识到一个小问题,如果不同路由给相同的别名会怎么样,试一下。。。。搞事情

试了一下,结果很奇怪,暂时没有判断出其中的机制

——路由组群

中间件是什么???  似乎后文会有解释,暂时跳过

命名空间,感觉就是为了防止重名而加的地址

路由群组可以为其中的子路由添加中间件和命名空间,代码略

路由群组对于子路由只有给路由名称提供统一前缀,以及给所有子路由提供相同性质这样的作用,而并不能影响其URL,

——子域名路由,比较有趣,在group路由之中,可以捕获参数,其中所有的子路由也都会有捕获这个参数的能力,以下为例子:。。。。。子域名没有设置好,很烦

——路由前缀

//路由前缀

Route::group(['prefix'=>'admin'],function() {

Route::get('subfix',function() {

return'hello';

// 匹配 "/admin/users" URL});  });

//路由前缀可以含有变量

Route::group(['prefix'=>'{admin}'],function() {

Route::get('subfix_2',function($admin) {

return'hello '.$admin;

// 匹配 "/admin/users" URL});  });

//输入:http://localhost/Learning/public/kidding/subfix_2

//返回:hello kidding

——防御CSRF攻击

相关文章

  • 6.27——基本路由

    6.27-7.4的任务: 1.阅读Laravel中文文档,建立项目进行尝试 2.加深对于sql的了解 3.看代码,...

  • 八、Flutter路由

    目录一、基本路由二、基本路由传参三、命名路由四、命名路由传参五、替换路由六、返回到根路由 一、基本路由 跳转到De...

  • flutter 导航以及传参方式

    flutter 导航方式有基本路由和命名路由1、基本路由 ============================...

  • vue-router

    前端路由的基本原理 vue-router的基本使用 命名路由 路由参数 嵌套路由

  • angualr(二) 路由之angualr-router

    创建项目 路由的基本使用 路由对象图示 路由基本配置 路由通配符配置 HTML里面跳转链接 在js里面跳转路由 路...

  • 2018-11-22

    路由的基本使用 1 路由的基本使用2 再路由注册再跟实例的时候我们可以全局的访问路由,this.$router或者...

  • 8、Zuul路由网关

    一、路由的概述 二、路由基本配置

  • Laravel 路由、中间件及 CSRF

    前言 Laravel 路由、中间件及 CSRF。 路由 基本路由 资源路由 动词路径方法路由get/photosi...

  • beego的路由机制

    基本 GET 路由 基本 POST 路由 注册一个可以响应任何 HTTP 的路由 自定义方法及 RESTful 规...

  • Flutter中的路由使用

    Flutter中提供了两种配置路由跳转的方式:1、基本路由;2、命名路由 一、基本路由 1.引入将要跳转的页面 2...

网友评论

      本文标题:6.27——基本路由

      本文链接:https://www.haomeiwen.com/subject/ocascxtx.html