摘要:什么事是一种类库依赖关系管理器网址下载命令创建项目项目文件说明是压缩文件下载到哪个目录版本在中需要给和赋予权限路由,请求的一级分发者请求请求资源型请求会多几条的路由控制器,请求的二级分发者快速创建控制器查看路由列表控制器给视图层传参
1.什么事composer?
composer是一种php类库依赖关系管理器
网址:https://getcomposer.org/
2.composer下载laravel
composer create-project laravel/laravel --prefer-dist blog 5.2.*
composer命令 创建项目 laravel项目文件 说明是压缩文件 下载到哪个目录 laravel版本
在Linux中需要给storage和vender赋予权限
3.路由,请求的一级分发者
Route::get("/", "IndexController@index"); //get请求 Route::post("/", "IndexController@index"); // post请求 Route::resource("home", "HomeController@index"); // 资源型请求
resource会多几条的路由
4.控制器,请求的二级分发者
快速创建控制器
php artisan make:controller HomeController
5.查看路由列表
php artisan route:list
6.控制器给视图view层传参
return view("index")->with("name","tong");
或
$data = [ "name"=>"tong", "age"=>18 ]; return view("index",$data);
或
$name = "tong"; return view("index",compact("name")); //等同于["name"=>"tong"]
7.blade模板引擎
7.1什么是blade模板引擎?blade是Laravel框架下的默认模板引擎
输出
{{$name}} => {{$name or "无名大侠"}} => @{{$name}} //不解析
7.2控制流和循环
if
@if($anme) 你好{{$anme}}. @else 你叫什么? @endif
foreach
7.3子视图
//子视图 - Laravel教程 将公共样式放在common目录中,然后引用@include("common.head")
环境与部署
8.1 数据库
首先看看项目根目录有没有.env文件,没有的话复制.env.example,名字叫做.env,里面存放一些全局的环境变量参数 DB::connection()->getDatabaseName(); //查看有没有链接成功
8.2 session
8.3 环境文件
注意:上传项目的时候一定要注意删除.env文件
8.4 部署和开发模式切换
8.5 down/up
比如我们的网站突然发生了一些大规模的攻击或一些其他的问题,造成我们的一些数据的丢失,数据完整性的问题,数据一致性的问题,总之就是一些比较严重的问题,以至于我们不得不停下来,首先给用户一个503页面,让用户知道我们的网站遭遇了一些问题正在抢修,什么时候恢复,或恢复时间不确定,给用户一个这样的页面,遇到这种情况,我们可以直接 php artisan down 给用户提示,等网站恢复后 php artisan up 让项目正常运行
9.eloquent--一种和数据库交互的机制,好用,优雅
快速创建model:php artisan make:model User
protected $table = "user";//表名 protected $guarded = ["user_id"];//不被赋值的属性 protected $hidden;//隐藏数据,禁止查询 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(); //通过主键删除模型 AppFlight::destroy(1); AppFlight::destroy([1, 2, 3]); AppFlight::destroy(1, 2, 3); //通过查询删除模型 $deletedRows = AppFlight::where("active", 0)->delete(); //添加额外约束 $flights = AppFlight::where("active", 1) ->orderBy("name", "desc") ->take(10) ->get();
9.集合
$user = new AppUser(); $users = $user->all(); dd($users); //等同于var_dump($users);die; $users->toArray(); //将集合变为数组 $arr = ["sss","ffffd"]; $collection = collect($arr); //将数组变为集合,可以方便的使用结合中的方法 $data = $collection->all(); //则又可以获得数据的原型 $bool = $collection->contains("sss");//查看集合中有没有sss这个值,有的话返回true,没有返回false $collection->has("sss");//查看集合中有没有叫sss的键 $collection->take(2);//取出集合中的前两个值,如果为负值,则从后往前取
10.操作用户产生的数据
10.1请求(requset)
10.1.1基础:获取用户提交的数据
input::get("name"); //可以获取url路径中的值 Request::all(); //返回用户提交的所有数据
10.1.2请求实例
Request::get("name");//接受用户输入的数据;可选的第二个参数,给它一个默认值 Request::query("name");//与get相似,但具有更强的选择性,固定接受地址栏中的数据,没有参数返回所有数据 Request::has("name");//查看用户提交的数据中是否有name键,并且不为空的时候,返回true;否则false Request::exists("name");//查看用户提交的数据中是否存在name键 Request::only("name","age");//限制用户的输入,只接受name和age这两个参数 Requset::except("name","age");//与only()正好相反,除了name和age,其他的参数都接受 Requset::url();//返回网址(不带参数) Requsett::fullUrl();//返回全部网址(带参数)
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
会话用于储存用户和服务器之间的一个状态 Session:::all();//获取所有的session Session::put($key,$value);/添加一个session Session::get("username");//获取某个session Session::has("username");//有没有名叫username的session Session::forget("username");//销毁某个session Session::pull();用一次之后就被销毁,可以在用户修改数据的时候,和falsh配合使用
12.会话配置
在laravel中,session默认使用文件存储的,可对于一个真正跑在线上的项目来说,它对性能的要求是比较高的,尤其是大并发量的项目,所以说,一半我们能存在数据库,就存在数据库,因为文件的读取速度不比较慢,下面是具体过程 1.在.env中,修改 SESSION_DRIVER=database 2.生成从存储session的数据表:php artisan session:table 3.composer dump-autoload 重新生成框架的自动加载文件 4.php artisan migrate 执行数据迁移
除了database,session还可以存储在cookie,memcache,redis中
13.数据验证
public function create(){ //接收数据 $data = Request::all(); //验证数据 $validator = Validator::make($data,[ "username"=>"required|min:4|max:10|unique:user",//username必填,最少4位,最多10位(between:4,10),user表中要唯一 "pwd"=>"numeric|required"//pwd必须为数字,必填,,多个验证用‘|’隔断 ]); //对验证失败做出相应 if($validator->fails()){ return $validator->errors(); } //验证成功 return "验证成功!"; }
14.哈希hash
//hash Route::get("hashmake",function(){ $password = Request::get("password"); $hashPassword = Hash::make($password); Session::put("hashpassword",$hashPassword); return Session::get("hashpassword"); }); Route::get("hashcheck",function(){ $inputpassword = Request::get("password"); $hashpassword = Session::get("hashpassword"); if(Hash::check($inputpassword,$hashpassword)){//第一个参数是输入的密码,第二个参数是哈希密码 echo "密码输入正确"; }else{ echo "密码输入错误"; } });
15.帮助函数
15.1帮助函数--array
//head()返回数组中的第一个参数 $arr = ["one","two","three"]; head($arr);//one //array_only() $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_only($arr,["one","two"]);//只要数组中的one和two键的值 //["one"=>"hou","two"=>"li"] //array_first()返回满足条件的第一个值 $arr1 = [1,2,3]; return array_first($arr1,function($key,$value){ return $value>=2; }); //2 //array_add($arr,$key,$value)向数组中添加值 $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_add($arr,"four","zhang"); //["one"=>"hou","two"=>"li","three"=>"zhao","four"=>"zhang"] //array_except($arr,$arr_except)除了什么,返回数组中其他的值 $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_except($arr,["two"]); //{"one":"hou","three":"zhao"} //array_flatten将多为数组转化成以为数组 $arr = ["one"=>"hou","two"=>"li","three"=>["zhao","zhang"]]; return array_flatten($arr); //["hou","li","zhao","zhang"] //array_where();返回满足条件的参数 $arr = ["one"=>"hou","two"=>"li","three"=>["zhao","zhang"]]; return array_where($arr,function ($k,$v){ return is_array($v); }); //{"three":["zhao","zhang"]} //array_last()返回数组中的最后一个值 $arr = ["one"=>"hou","two"=>"li","three"=>"zhao"]; return array_last($arr); //zhao
15.2帮助函数--path
app_path();//返回项目的路径 config_path();//返回配置路径 public_path();//返回public的路径 storage_path();//返回storage的路径(过程文件的储存目录)
15.3帮助函数--string
str_plural($str);//某个英文单词的复数,非常智能,不是你所看到的那么简单 starts_with("asd","a");//该字符传是否以a开头,返回bool值 end_with("asd","d");//该字符传是否以d结尾,返回bool值 camel_case($str);//将字符串转化成驼峰式 class_basename("AppHttpControllersTestController");//只返回TestController str_limit("abcd",3);//abc... 限制字符串的长度,超出后在字符串后加上‘...’ str_is("ab*","abcd");//相当于正则,判断支付穿是否满足于某种模式,第一个参数是条件,第二个参数是匹配的字符串,返回bool值
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30588.html
摘要:版微信第三方登陆包括微信微博等等,查看支持列表扩展好用的图片处理,也方便使用百度版百度版支付集合,包含支付宝等支付宝在的封装各国语言包,包含简体中文生成二维码工具,亲测好用未完大家可以向我推荐,直接在本文下留言即可。 Laravel不权威导航 Hi 这里是Roy整理的Laravel相关索引,希望能帮到大家showImg(http://static.segmentfault.com/bu...
摘要:简介另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态该项目统计了目前下载量最高的个扩展包。记得哟相信下面这些扩展包会让你的编码更加高效。排名下载量排名包地址下载次数描述图片处理。 简介 Laravel 另一个令人喜欢的地方,是拥有活跃的开发者社区,而活跃的开发者社区带来的,是繁华的扩展包生态 ———— @Summer 该项目统计了目前 pack...
摘要:查找保存下载用搭建自己的缓存仓库权限管理的好选择基于封装的后台管理系统,支持手机和端访问支付宝风格的验证器后台系统微信接口的部署脚本开发的博客系统百度推送自动记录用户行为扩展一个项目管理系统根据生成对应导航的状态 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
摘要:建立并切换到本地分支沐沐沐也可以直接用删除本地仓库里的所有文件除了的文件夹,然后推送沐沐沐这个时候,远程仓库的分支便和本地仓库的分支一样都是空白的,这样就可以随心所欲的推送了。 背景 最近在用laravel开发微信小程序的接口,因为服务器PHP版本的问题,分别用了laravel 5.6(php 7.1,开发环境) 和 laravel 5.4 (php 5.6,服务器环境),开发完成后...
摘要:查阅官方文档后得知,新版为了防止对象的序列化反序列化漏洞被利用,不再对值进行自动的序列化和反序列化处理。举个栗子更新到后,因为不再自动对值进行序列化处理,而只能加密字符串数据,这个时候程序就会抛出错误。 最近手残升级了项目里 Laravel 的小版本号(v5.5.39 => v5.5.45),这不升级则已,一升级就出了问题! Sentry 平台上提示错误:openssl_encrypt...
摘要:要学习那么第一步就是要在我们的开发机上安装并运行,首先我们会先安装再使用框架提供的安装小工具,通过使用就能生成我们的工程了。在的官方网站上的文档中已经很详细的介绍了如何安装不过文档可能讲解的并不是那么的细致。从零开始学系列目录地址 要学习Laravel,那么第一步就是要在我们的开发机上安装并运行Laravel,首先我们会先安装composer,再使用laravel框架提供的安装小工具,...
阅读 1012·2021-10-27 14:15
阅读 2768·2021-10-25 09:45
阅读 1929·2021-09-02 09:45
阅读 3360·2019-08-30 15:55
阅读 1800·2019-08-29 16:05
阅读 3193·2019-08-28 18:13
阅读 3112·2019-08-26 13:58
阅读 445·2019-08-26 12:01