Laravel学习
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学习的更多相关文章
- Laravel学习笔记(三)--在CentOS上配置Laravel
在Laravel框架上开发了几天,不得不说,确实比较优雅,处理问题逻辑比较清楚. 今天打算在CentOS 7上配置一个Laravel,之前都是在本机上开发,打算实际配置一下. 1)系统 ...
- Laravel学习笔记之Session源码解析(上)
说明:本文主要通过学习Laravel的session源码学习Laravel是如何设计session的,将自己的学习心得分享出来,希望对别人有所帮助.Laravel在web middleware中定义了 ...
- 《PHP框架Laravel学习》系列分享专栏
<PHP框架Laravel学习>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201735.html 文章 Laravel教程:l ...
- Laravel 学习 .env文件 getenv 获得环境变量的值
Laravel 学习 .env文件 getenv 获得环境变量的值 我们还需要对应用的 .env 文件进行设置,为应用指定数据库名称 sample. .env . . . DB_DATABASE=s ...
- laravel学习之旅
前言:之前写了二篇YII2.0的基本mvc操作,所以,打算laravel也来这一下 *安装现在一般都用composer安装,这里就不讲述了* 一.熟悉laravel (1)如果看到下面这个页面,就说明 ...
- laravel学习:主从读写分离配置的实现
本篇文章给大家带来的内容是关于laravel学习:主从读写分离配置的实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在DB的连接工厂中找到以下代码.../vendor/larav ...
- Laravel学习笔记之PHP反射(Reflection) (上)
Laravel学习笔记之PHP反射(Reflection) (上) laravel php reflect 2.1k 次阅读 · 读完需要 80 分钟 3 说明:Laravel中经常使用PHP的反 ...
- Laravel学习笔记(一)安装配置开发环境
摘要 Laravel的目标是给开发者创造一个愉快的开发过程,并且不牺牲应用的功能性.快乐的开发者才能创造最棒的代码!为了这个目的,开发者博取众框架之长处集中到Laravel中,这些框架甚至是基于Rub ...
- Laravel 学习笔记 —— 神奇的服务容器 [转]
容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存放的不是文本.数值,而是对象.对象的描述(类.接口)或 ...
- 慕客网laravel学习笔记
session中set方法使用 Session::set('user.username.age','18')嵌套使用得出$user = ['username'=>['age'=>18]]; ...
随机推荐
- springrain 1.1 发布,spring 的极简封装
经过2个月的测试修改,springrain1.1已经稳定,今日发布. 主要改动如下: 1.添加批量更新和保存的方法 2.添加maven分支 3.添加博客管理的demo 4.增加redis做为缓存实现 ...
- 基于Selenium的自动化测试 C#版(1)
引子 我一直在思考,作为一个架构师,如何简化程序员的工作,减轻运维的压力,减低测试的要求.然后做了很多很多的尝试.最开始的公司培训文档,一键发布工具,Nuget版本管理,VS项目模板,SOA统一服务提 ...
- 在线教学、视频会议 Webus Fox(1)文本、语音、视频聊天及电子白板基本用法
Webus Fox是基于网页的在线教学.视频会议软件,不用安装,直接使用.它提供文本.语音.视频聊天,文件共享.电子白板等功能. 1. 登录 访问 http://flash.webus.cn/#,用自 ...
- Task:取消异步计算限制操作 & 捕获任务中的异常
Why:ThreadPool没有内建机制标记当前线程在什么时候完成,也没有机制在操作完成时获得返回值,因而推出了Task,更精确的管理异步线程. How:通过构造方法的参数TaskCreationOp ...
- 手把手教你用python打造网易公开课视频下载软件1-总述
写作前面的话:最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html,在线看 ...
- js模版引擎handlebars.js实用教程——另一种Helper用法
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- 在Grunt task中集成Protractor
Protractor是专为AngularJS应用程序编写的UI自动化测试框架.前端构建有很多构建工具,比如Grunt.Gulp等.一般我们会把这些构建工具作为集成集成的脚本执行工具.所以如果把Prot ...
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...
- P,NP,NP_hard,NP_complete问题定义
背景:在看李航的<统计学习方法时>提到了NP完全问题,于是摆之. 问题解答:以下是让我豁然开朗的解答的摘抄: 最简单的解释:P:算起来很快的问题NP:算起来不一定快,但对于任何答案我们都可 ...
- Atitit mtp ptp rndis midi协议的不同区别
Atitit mtp ptp rndis midi协议的不同区别 1. PTP:1 2. MTP:1 3. Mtp 与usb区别2 4. 不过和UMS相比,MTP也有不足之处:3 5. MTP协议介 ...