Laravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能。

Laravel的配置都存放在app/config中。

里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get("key")来获取配置。使用Config::set("key", "value") 来赋值配置项

要想使用不同的环境配置,就需要在config下创建对应配置的文件夹。然后它会覆盖对应的配置项。

获取当前的环境是使用App::environment(),判断当前环境是什么是使用:App::environment("local")

providers是用来配置对应的服务的,比如:

Laravel的请求周期:

1 请求先从public/index.php中进入

2 bootstrap/start.php文件创建app并检测环境

3 内部的 /Illuminate/Foundation/start.php文件配置相关设置并加载服务器

4 加载app/start目录下的文件

5 加载app/routes.php的路由设置

6 request通过controller等转化为response

7 返回response

路由配置:

配置的格式是:

Route::get('foo/bar', funciton(){return 'Hello World';})

路由参数是可以有下面几种的:

可选路由参数:

带有默认的可选的路由参数:

用正则表达式限定的路由参数:

传递参数限定的数组:

定义全局模式:

不同的参数定位到不同的路由:

好,现在有个问题是某些路由必须要登录或者验证才能访问怎么办?这里就使用到了路由过滤器这个东西。

比如下面这个例子,当年龄小于200的时候就跳转到主页:

Request中的操作:

获取用户提交的值:Input::get('name');

获取用户提交的值并指定默认值:Input::get('name', 'Sally');

用户提交的信息是否存在:Input::has('name')

获取所有用户提交的信息:Input::all()

获取其中几项指定的信息:Input::only('username', 'password');

获取除几项之外的提交信息:Input::except('card');

访问用户提交的数组:Input::get('products.0.name');

cookie操作:

获取Cookie中的值:Cookie::get('name')

添加一个Cookie:

$response = Response::make('Hello World');

$response->withCookie(Cookie::make('name', 'value', $minutes));

如果想在Response之前设置Cookie,使用Cookie::queue()

Cookie::queue($name, $value, $minute);

Session操作:

存储一个变量:Session::put('key', 'value');

读取一个变量:Session::get('key');

读取一个变量或者返回默认值:Session::get('key', 'default');

检查一个变量是否存在:Sesssion::has('key');

删除一个变量:Session::forget('key');

删除所有Session变量:Session::flush();

文件上传操作:

获取用户上传文件:$file = Input::file('photo');

判断是否有上传这个文件:Input::hasFile('photo');

移动上传的文件:

Input::file('photo')->move($destinationPath);

Input::file('photo')->move($destinationPath, $fileName);

获取上传文件大小:

Input::file('photo')->getSize();

获取上传文件类型:

Input::file('photo')->getMimeType();

获取用户请求路径:Request::path();

获取用户请求URL:Request::url();

获取Header中的信息:Request::header('Content-Type');

获取SERVER中的信息:Request::server('PATH_INFO');

重定向:

重定向: return Redirect::to('user/login');

有参数的重定向: return Redirect::to('user/login')->with('message', 'Login Failed');

重定向到路由:return Redirect::route('profile', array('user' => 1));

返回重定向到Action:return Redirect::action('UserController@profile', array('user' => 1));

视图层:

传递数据给视图:$view = View::make('greeting')->with('name', 'Steve');

将一个视图传递给另一个视图:$view = View::make('greeting')->nest('child', 'child.view');

返回json:return Response::json(array('name' => 'Steve', 'state' => 'CA'));

返回jsonp:return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));

返回下载文件:

return Response::download($pathToFile);

return Response::download($pathToFile, $status, $headers);

一个基本的控制器:

路由就长这样:

默认中,app/start/global.php文件中包含了一个处理所有异常的处理器。

监听fatal error,可以使用App::fatal方法。

日志操作:

Log::info

Log::warning

Log::error

Laravel学习的更多相关文章

  1. Laravel学习笔记(三)--在CentOS上配置Laravel

    在Laravel框架上开发了几天,不得不说,确实比较优雅,处理问题逻辑比较清楚.     今天打算在CentOS 7上配置一个Laravel,之前都是在本机上开发,打算实际配置一下.     1)系统 ...

  2. Laravel学习笔记之Session源码解析(上)

    说明:本文主要通过学习Laravel的session源码学习Laravel是如何设计session的,将自己的学习心得分享出来,希望对别人有所帮助.Laravel在web middleware中定义了 ...

  3. 《PHP框架Laravel学习》系列分享专栏

    <PHP框架Laravel学习>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201735.html 文章 Laravel教程:l ...

  4. Laravel 学习 .env文件 getenv 获得环境变量的值

    Laravel 学习 .env文件 getenv 获得环境变量的值  我们还需要对应用的 .env 文件进行设置,为应用指定数据库名称 sample. .env . . . DB_DATABASE=s ...

  5. laravel学习之旅

    前言:之前写了二篇YII2.0的基本mvc操作,所以,打算laravel也来这一下 *安装现在一般都用composer安装,这里就不讲述了* 一.熟悉laravel (1)如果看到下面这个页面,就说明 ...

  6. laravel学习:主从读写分离配置的实现

    本篇文章给大家带来的内容是关于laravel学习:主从读写分离配置的实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在DB的连接工厂中找到以下代码.../vendor/larav ...

  7. Laravel学习笔记之PHP反射(Reflection) (上)

    Laravel学习笔记之PHP反射(Reflection) (上) laravel php reflect 2.1k 次阅读  ·  读完需要 80 分钟 3 说明:Laravel中经常使用PHP的反 ...

  8. Laravel学习笔记(一)安装配置开发环境

    摘要 Laravel的目标是给开发者创造一个愉快的开发过程,并且不牺牲应用的功能性.快乐的开发者才能创造最棒的代码!为了这个目的,开发者博取众框架之长处集中到Laravel中,这些框架甚至是基于Rub ...

  9. Laravel 学习笔记 —— 神奇的服务容器 [转]

    容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存放的不是文本.数值,而是对象.对象的描述(类.接口)或 ...

  10. 慕客网laravel学习笔记

    session中set方法使用 Session::set('user.username.age','18')嵌套使用得出$user = ['username'=>['age'=>18]]; ...

随机推荐

  1. 前端自动化测试工具doh学习总结(二)

    一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动 ...

  2. Spring RabbitMq概述

    Spring AMQP consists of a handful of modules, each represented by a JAR in the distribution. These m ...

  3. Unity3D热更新全书-重头再来

    之前写了Unity3D热更新全书系列Blog 提出了下载.加载.脚本三个方面的开源类库 下载方面有EasyDown加载方面有GameObjParser脚本方面有C#Light另外有一个没有独立成库,但 ...

  4. 使用mybatis访问sql server

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com mybatis作为一种半自动化的ORM工具,可以提供更大的灵活性,逐渐受到社区的欢迎. 官方下载地址是:https ...

  5. 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  6. webservice2

    按照 当然,里面没写清楚如何配置第三方jar 结果一访问就报错:org.codehaus.xfire.transport.http.XFireConfigurableServlet 4年前就搞过ws的 ...

  7. ios CGRect

    /*     rect(x,y,width,height);     width, height正负代表了从原点的绘制方向,矩形的长宽都是取得绝对值     */            // Do a ...

  8. JavaScript模板引擎实例应用

    在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及如何使用,文末还提到了laytpl.art ...

  9. Java程序员的日常 —— 多进程开发IO阻塞问题

    本篇仍旧是源于最近的工作,总结一下纪念那些年埋下的坑... 背景故事 需求:"使用进程方式启动另一个程序!" 开发:"OK! Runtime.getRuntime().e ...

  10. 数据库MySQL开篇

    作为一名前端,后天方面的知识虽说不一定要精通后台但是对后台方面的知识有一定了解是非常必要的. 今天先说一些概念方面的,因本人才疏学浅,对于数据库这方面的自学相当于摸着石头过河,有什么写的不对的地方,希 ...