1.什么是作曲家?Composer是一个PHP类库依赖管理器网址:https://getcomposer.org/2.composer下载laravelcomposercreate-projectlaravel/laravel--prefer-distblog5.2.*composer命令创建项目laravel项目文件描述是哪个将压缩文件下载到的目录?laravel版本在linux中需要给storage和vendor赋予权限3.路由,请求的一级分发器Route::get('/','IndexController@index');//获取请求Route::post('/','IndexController@index');//发布请求Route::resource('home','HomeController@index');//资源请求的路由会多4.Controller,请求的二级分发器快速创建控制器phpartisanmake:controllerHomeController5.查看路由列表phpartisanroute:list6。控制器向视图层传递参数returnview('index')->with('name','tong');或者$data=['name'=>'tong','age'=>18];返回视图('索引',$数据);或$name='tong';返回视图('索引',紧凑('名称'));//等价于['name'=>'tong']7.blade模板引擎7.1什么是blade模板引擎?blade是Laravel框架下默认的模板引擎输出{{$name}}=>{{$nameor'unknownhero'}}=>@{{$name}}//不解析7.2控制流和循环if@if($anme)Hello{{$anme}}.@else你叫什么名字?@endifforeach
@foreach($nameas$value)- {{$value}}
@endforeach
7.3Subview//
Subview-LaravelTutorial把在common目录下public样式,然后引用@include('common.head')环境部署8.1数据库。首先查看项目根目录下是否有.env文件。如果没有,复制.env.example,名称为.env,其中存放一些全局环境变量参数DB::connection()->getDatabaseName();//检查是否有链接成功8.2session8.3环境文件注意:上传项目时一定要删除.env文件8.4部署和开发模式切换8.5down/up比如一些大规模的攻击或者一些其他的我们的网站突然出现问题,导致我们的一些数据丢失,数据完整性问题,数据一致性问题,总之是一些严重的问题问题,让我们不得不停止,先给用户一个503页面,让用户知道我们的网站遇到了一些问题,正在修复,什么时候恢复,或者恢复时间不确定,给用户这样一个页面,遇到这种情况,我们可以直接运行phpartisandown来提示user,并且网站恢复后,phpartisanup允许项目正常运行隐藏数据,禁止查询protected$primaryKey='id';//主键protected$fillable=['name'];//那些属性可以赋值public$timestamps=false;要关闭时间戳字段,添加$model->findorFail();如果找不到数据会报错//查询数据$this->all();//添加数据$data=['useraname'=>'sssss','pwd'=>'sdasdsa'];$model->fill($data_array());以数组的形式添加数据,功能极其强大$this->username=$data['username'];$model->save();//修改数据$user=$model->find($id);$user->username='adsadasd';$user->save();//批量修改$user=$this->where('age','<',18);$user->update(['username'=>'adasda','age'=>60]);//删除数据$user=$this->find($id);$user->delete();//删除通过主键删除模型App\Flight::destroy(1);App\Flight::destroy([1,2,3]);App\Flight::destroy(1,2,3);//删除模型通过查询$deletedRows=App\Flight::where('active',0)->delete();//添加额外的约束$flights=App\Flight::where('active',1)->orderBy('name','desc')->take(10)->get();9.Collection$user=newApp\User();$users=$user->all();dd($users);//等价于var_dump($users);die;$users->toArray();//把集合转成数组$arr=['sss','ddd'];$collection=收集($arr);//将数组转为集合,可以很方便的使用组合中的方法$data=$collection->all();//可以再次获取数据的原型$bool=$collsection->contains('sss');//检查集合中是否有sss值,有则返回true,没有则返回false$collection->has('sss');//检查是否有sss集合中的key$collection->take(2);//取出集合中的前两个值,如果是负值,则从后往前取10。操作用户产生的数据10.1请求(requset)10.1.1基础:获取用户提交的数据input::get('name');//可以获取url路径中的值Request::all();//返回用户提交的所有数据10.1.2Request实例Request::get('name');//接受用户输入的数据;可选第二个参数,给它一个默认值'name');//检查用户提交的数据中是否有name键,不为空则返回true;otherwisefalseRequest::exists('name');//检查用户提交的数据中是否存在name键Request::only('name','age');//限制用户输入,只接受name和age两个参数Requset::except('name','age');//和only()相反,除了name和age,其他参数接受Requset::url();//返回URL(不带参数)Requsett::fullUrl();//返回所有URL(带参数)10.1.4请求历史当用户提交错误信息时,返回用户填写的数据,提高用户体验Request::falsh();//用户数据处理失败后,保存之前提交的数据Request::falshOnly();//同falsh(),只保存部分数据Request::falshExcept();//同falsh(),除了这几条数据,其他数据都存起来Request::old();//提交失败返回后,取出用户的数据10.1.5文件Request::file('myFile');//获取用户的包含在请求所有文件Request::hasFile('myFile');//是否有上传文件,返回bool值Request::file('myFile')->getSize();获取文件大小Request::file('myFile')->getClientOriginalName();//获取客户端上传的文件名Request::file('myFile')->getClientOriginalExtension();获取客户端上传的文件的后缀//可以选择多个文件11.Session:sessionsession用来存储用户和服务器之间的一个状态Session:::all();//获取所有sessionSession::put($key,$value);/添加一个sessionSession::get('username');//获取一个sessionSession::has('username');//是否有一个名为username的sessionSession::forget('username');//销毁一个sessionSession::pull();使用一次即销毁,可在用户修改数据时与falsh配合使用。12、Session配置在laravel中,session默认使用文件存储,但是对于真正在线运行的项目来说,其性能要求比较高。特别是对于并发量大的项目,所以如果我们一半人可以有数据库,有数据库,因为文件的读取速度不慢,下面是具体过程1.在.env中,修改SESSION_DRIVER=database2.从存储中生成Session数据表:phpartisansession:table3.composerdump-autoload重新生成框架的自动加载文件4.phpartisanmigrate执行数据迁移除了数据库,session也可以存储在cookie中,memcache,redis13.数据验证publicfunctioncreate(){//接收数据$data=Request::all();//验证数据$validator=Validator::make($data,['username'=>'required|min:4|max:10|unique:user',//用户名必填,最少4位,最多10位(between:4,10),在用户表中唯一的'pwd'=>'numeric|required'//pwd必须是数字,必填,多次验证用'|'分隔]);//对验证失败做出响应if($validator->fails()){return$validator->errors();}//验证成功return'验证成功!';}14.哈希哈希//hashRoute::get('hashmake',function(){$password=Request::get('password');$hashPassword=Hash::make($password);Session::put('hashpassword',$hashPassword);returnSession::get('hashpassword');});Route::get('hashcheck',function(){$inputpassword=Request::get('password');$hashpassword=Session::get('hashpassword');if(Hash::check($inputpassword,$hashpassword)){//第一个参数为输入密码,第二个参数为hash密码echo"Passwordinputis正确";}else{echo"密码输入错误";}});15.帮助函数15.1帮助函数--array//head()返回数组中的第一个参数$arr=['one','two','three'];head($arr);//one//array_only()$arr=['one'=>'hou','two'=>'li','three'=>'zhao'];returnarray_only($arr,['one','two']);//只要数组中一、二键的值//['one'=>'hou','two'=>'li']//array_first()返回第一个满足条件的值$arr1=[1,2,3];returnarray_first($arr1,function($key,$value){return$value>=2;});//2//array_add($arr,$key,$value)给数组加值$arr=['一'=>'侯','二'=>'李','三'=>'赵'];returnarray_add($arr,'four','zhang');//['one'=>'hou','two'=>'li','three'=>'zhao','four'=>'zhang']//array_except($arr,$arr_except)返回数组中的其他值$arr=['one'=>'hou','two'=>'li','three'=>'赵'];returnarray_except($arr,['two']);//{"one":"hou","three":"zhao"}//array_flatten将多个数组转化为单个数组$arr=['one'=>'侯','二'=>'李','三'=>['赵','张']];returnarray_flatten($arr);//["hou","li","zhao","zhang"]//array_where();返回满足条件的参数$arr=['one'=>'hou','two'=>'li','three'=>['zhao','zhang']];returnarray_where($arr,function($k,$v){returnis_array($v);});//{"three":["zhao","zhang"]}//array_last()返回最后一个数组中的值$arr=['one'=>'hou','two'=>'li','three'=>'zhao'];returnarray_last($arr);//zhao15.2帮助函数--pathapp_path();//返回项目路径config_path();//返回配置路径public_path();//返回公共路径storage_path();//返回存储路径(进程文件存放目录)15.3辅助函数--stringstr_plural($str);//一个英文单词的复数很聪明,不像你看到的那么简单starts_with('asd','a');//传递的字符是否以a开头,返回bool值end_with('asd','d');//字符是否以d结尾,返回bool值camel_case($str);//将字符串转成camelcaseclass_basename('App\Http\Controllers\TestController');//只返回TestControllerstr_limit('abcd',3);//abc...限制字符串长度,在字符串后加'...'超过后str_is('ab*','abcd');//相当于一个正则模式,判断支付磨损是否满足某个模式,第一个参数为条件,第二个参数为匹配字符串,返回一个布尔值价值