从Laravel5.5+开始,加入了APIResources这个概念。我们先来看一下官网如何定义这个概念的:WhenbuildinganAPI,youmayneedatransformationlayerthatsitsbetweenyourEloquentmodelsandtheJSONresponsesthatareactuallyreturnedtoyourapplication'susers.Laravel'sresourceclassesallowyoutoexpressivelyandeasilytransformyourmodelsandmodelcollectionsintoJSON.可能看完这个概念之...
继续阅读 >
分类:编程语言
2020
09-25
09-25
Laravel 5+ .env环境配置文件详解
在我们开发的时候,有时候我们希望不同的环境中有不同的配置参数,举例来说,你希望生产环境使用的缓存机制与本地环境不同。要实现这个目的,Laravel使用了DotEnv这个PHP库。在Laraval的安装根目录下,我们会看到一个名为.env.example的文件,我们需要手动将其命名为.env(或拷贝一个副本并将其命名为.env)。打开.env文件,可以看到一系列配置信息:APP_NAME=Laravel APP_ENV=local ...
继续阅读 >
2020
09-25
09-25
Laravel5.3+框架定义API路径取消CSRF保护方法详解
从Laravel5.3+开始,API路径被放入了routes/api.php中。我们绝大多数的路径其实都会在web.php中定义,因为在web.php中定义的路径默认有CSRF保护,而API路径默认没有CSRF保护。在Laravel官网文档中写到:/p>AnyHTMLformspointingtoPOST,PUT,orDELETEroutesthataredefinedinthewebroutesfileshouldincludeaCSRFtokenfield.Otherwise,therequestwillberejected.所以,请注意你页面的表单中是否使用了PO...
继续阅读 >
2020
09-25
09-25
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
注意:文章标题中5.2+表示该文章内容可向上兼容,适用于Laravel版本5.2及更高(目前最新为5.6),但不可向下兼容,即不适用于5.2版本以下。推荐大家花一点点时间,将自己的Laravel更新至5.6版本。在后台开发时,我们经常需要获取用户之前操作页面的地址并生成一个返回之前页面的链接。而Laravel从版本5.2+开始,便提供了一系列全局帮助函数(HelperFunctions)来简化我们的工作:https://laravel.com/docs/5.2/helpers#method-url要...
继续阅读 >
2020
09-25
09-25
使用git迁移Laravel项目至新开发环境的步骤详解
对于如何创建一个Laravel项目,相信对新接触Laravel的朋友并不存在太多的问题,但是今天我们要来看一下如何将已有的Laravel项目迁移(复制)到新的开发环境。我们需要用到的工具是git,如果你不知道git是什么,这里有一个传送门,看完之后再回来:http://github.com简单说来,git就是Github开发的VCS(VersionControlSystem),即版本控制系统。如果你使用过SVN,那么你应该很清楚版本控制是什么。本文的示例环境是Ubuntu16.04...
继续阅读 >
2020
09-25
09-25
Laravel框架数据库迁移操作实例详解
很多人可能在学习Laravel框架的时候,对Laravel的数据库迁移(以下简称Migrations)存在着疑惑:1.什么是Migrations?2.为什么要用Migrations?3.Migrations到底方便在哪里?好了,抱着这些问题,我们今天就一起来学习Migrations。什么是Migrations?我们先来看一下Laravel官方文档怎么写的:Migrationsarelikeversioncontrolforyourdatabase,allowingyourteamtoeasilymodifyandsharetheapplication'sdat...
继续阅读 >
2020
09-25
09-25
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
在我们的web应用中,经常会遇到这样的情况:用户在进行了某项操作后,我们需要在后台完成一个耗时且耗费资源的任务,以对应用户的操作。通常来说,web应用中的操作都是同步的(synchronous),即用户的操作可以立即得到回馈。但是在以上情况下,同步等待操作结果将是灾难性的。比如用户点击了申请密码重置邮件,倘若我们让用户一直停滞在等待页面,直至邮件发送成功,那么用户体验将非常地不好,因为有时候可能需要很长的时间才能...
继续阅读 >
2020
09-25
09-25
Laravel实现批量更新多条数据
前言近期在刷新生产环境数据库的时候,需要更新表中的字段,如果对每条数据结果都执行一次update语句,占用的数据库资源就会很多,而且速度慢。因为项目是Laravel框架,Laravel有批量插入的方法,却没有批量更新的方法,没办法只能自己实现。准备mysqlcase…when的用法MySQL的casewhen的语法有两种:简单函数CASE[col_name]WHEN[value1]THEN[result1]…ELSE[default]ENDCASE[col_name]WHEN[value1]THEN[result1]...
继续阅读 >
2020
09-25
09-25
PHP正则之正向预查与反向预查讲解与实例
了解正向预查&反向预查前,我们先要知道正则的2个函数:preg_match_all、preg_replace正向预查&反向预查正向或反向预查都是非获取匹配,不进行存储供以后使用。1、正向预查(?:pattern)匹配结果(?=pattern)正向匹配(?!pattern)正向不匹配2、反向预查(?<=pattern)反向匹配。(?<!pattern)反向不匹配。什么叫非获取匹配(非捕获匹配),请看例子一:PHP正则正向预查实例PHP获取匹配实例$str='XXXXjava6ja...
继续阅读 >
2020
09-25
09-25
Java爬取豆瓣电影数据的方法详解
本文实例讲述了Java爬取豆瓣电影数据的方法。分享给大家供大家参考,具体如下:所用到的技术有Jsoup,HttpClient。Jsoupjsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。HttpClientHTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。虽然...
继续阅读 >
2020
09-25
09-25
iis7 iis8反向代理规则编写、安装与配置方法
目的:把A站当做B站二级目录如:http://www.baidu.com等于/baidu/http://www.qq.com等于http://www.6ke.com.cn/qq/1、安装64位URLIIS7重写rewrite2、安装requestRouter_amd64.msi安装步骤1.IIS的版本是7.5.7600.16385.2.关闭相关服务.netstopwas/ynetstopwmsvc/y第二个服务没有开。3.手动安装ARR的依赖项。a)WebFarmFrameworkmoduleversion1.1b)Externalcachemoduleversion1.0c)URL...
继续阅读 >
2020
09-25
09-25
jquery实现两个div中的元素相互拖动的方法分析
本文实例讲述了jquery实现两个div中的元素相互拖动的方法。分享给大家供大家参考,具体如下:这里写了两个实例,两个都是基于jquery实现的。如果有更好的方法,欢迎分享。第一个效果图:拖动中:拖动完成后:代码实现:<!doctypehtml><html><head><metacharset="utf-8"><title></title><linkrel="stylesheet"href="jquery-ui-1.11.4/jquery-ui.css"rel="externalnofollow"><scriptsrc="js/jquery.js"></script>...
继续阅读 >
2020
09-25
09-25
js实现登录时记住密码的方法分析
本文实例讲述了js实现登录时记住密码的方法。分享给大家供大家参考,具体如下:常见的很多网站登录,都有记住密码功能,下面是用js实现的记住密码功能(代码用的源生js,不用引入任何插件,大家如果引入了jQuery,可以进行修改,优化)js部分window.onload=function(){varoForm=document.getElementById('myForm');varoUser=document.getElementById('username');varoPswd=document.getElementById('passwrod');var...
继续阅读 >
2020
09-25
09-25
Vue插件之滑动验证码用法详解
本文实例讲述了Vue插件之滑动验证码用法。分享给大家供大家参考,具体如下:目录预览基于滑动式的验证码,免于字母验证码的繁琐输入用于网页注册或者登录安装使用方法更新记录V1.1.2版本V1.1.1描述(此版本有bug,请使用最新版)V1.1.0版本新增属性`imgs`:内置方法props传参(均为可选)自定义回调函数注意事项预...
继续阅读 >
2020
09-25
09-25
TP5框架安全机制实例分析
本文实例讲述了TP5框架安全机制。分享给大家供大家参考,具体如下:防止sql注入1、查询条件尽量使用数组方式,具体如下:$wheres=array();$wheres['account']=$account;$wheres['password']=$password;$User->where($wheres)->find();2、如果必须使用字符串,建议使用预处理机制,具体如下:$User=D('UserInfo');$User->where('account="%s"andpassword="%s"',array($account,$password))->find();3、可以使用PDO方式...
继续阅读 >
2020
09-25
09-25
TP5框架实现自定义分页样式的方法示例
本文实例讲述了TP5框架实现自定义分页样式的方法。分享给大家供大家参考,具体如下:1.在extend\目录下创建page目录,在page目录下创建Page.php文件,将以下代码放入文件中。<?phpnamespacepage;usethink\Paginator;classPageextendsPaginator{//首页protectedfunctionhome(){if($this->currentPage()>1){return"<ahref='".$this->url(1)."'title='首页'>首页</a>";}else{retu...
继续阅读 >
2020
09-25
09-25
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
本文实例讲述了TP5框架model常见操作。分享给大家供大家参考,具体如下:使用model查询数据,添加数据,修改数据,删除数据聚合操作获取器,修改器自动添加时间戳(创建时间,修改时间)软删除1、使用model查询数据$res=User::get(1);//获取主键为1的数据,得到的是一个对象$res=$res->toArray();//将对象转化为数组dump($res->name);//获取$res里name字段的值//使用闭包函数查询id=1的记录$res=User:...
继续阅读 >
2020
09-25
09-25
Java实现扑克牌洗牌和发牌
本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中;通过把集合数据排序打乱实现洗牌操作,然后在通过循环把牌抽出来实现发牌操作。下面是实现代码:importjava.util.ArrayList;importjava.util.Collections;publicclassCard{privatestaticArrayList<String>list=newArrayList<>();privatestaticString[]colors={...
继续阅读 >
2020
09-25
09-25
TP5框架实现签到功能的方法分析
本文实例讲述了TP5框架实现签到功能的方法。分享给大家供大家参考,具体如下:基于tp5模型的一个签到功能;由于存储所有的签到日期数据库会非常庞大,所以签到日期只存储近三个月的。具体功能:1、记录最近一次的签到时间2、每次签到都会添加15积分3、有连续签到的记录CREATETABLE`sp_sign`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'主键',`times`datetimeDEFAULTNULLCOMMENT'最近一次签到时间',`userid`int(1...
继续阅读 >
2020
09-25
09-25
TP5框架页面跳转样式操作示例
本文实例讲述了TP5框架页面跳转样式操作。分享给大家供大家参考,具体如下:1、效果图2、上干货为了增加对移动设备的支持,在 /application/common.php加入以下函数:functionisMobile(){if(isset($_SERVER['HTTP_X_WAP_PROFILE'])){returntrue;}if(isset($_SERVER['HTTP_VIA'])){returnstristr($_SERVER['HTTP_VIA'],"wap")?true:false;}if(isset($_SERVER['HTTP_USER_AGENT']...
继续阅读 >
2020
09-25
09-25
Android使用Opengl录像时添加水印
最近需要开发一个类似行车记录仪的app,其中需要给录制的视频添加动态水印。我使用的是OpenGL开发的,刚开始实现的是静态水印,后面才实现的动态水印。先上效果图,左下角的是静态水印,中间偏下的是时间水印(动态水印):一、静态水印实现原理:录像时是通过OpenGL把图像渲染到GLSurfaceView上的,通俗的讲,就是把图片画到一块画布上,然后展示出来。添加图片水印,就是把水印图片跟录制的图像一起画到画布上。这是加载纹理跟阴...
继续阅读 >
2020
09-25
09-25
Android如何获取视频首帧图片
Android获取视频首帧图片或第n秒的图片,供大家参考,具体内容如下这里介绍如何获取视频首帧或者第n秒的图片并保存在本地,直接上代码:importandroid.graphics.Bitmap;importandroid.media.MediaMetadataRetriever;importandroid.os.Bundle;importandroid.os.Environment;importandroid.support.v7.app.AppCompatActivity;importandroid.view.View;importandroid.widget.Button;importandroid.widget.ImageView;importan...
继续阅读 >
2020
09-25
09-25
TP5框架实现的数据库备份功能示例
本文实例讲述了TP5框架实现的数据库备份功能。分享给大家供大家参考,具体如下:1、效果图2、下载扩展类( \extands\org\Baksql.php)3、在 \public\static 里新建一个data文件夹用来存放.sql 的文件4、使用方法controller<?phpnamespaceapp\index\controller;usethink\Controller;classBackupextendsController{//数据库备份publicfunctionbak(){$type=input("tp");$name=input("na...
继续阅读 >
2020
09-25
09-25
Android中socket通信的简单实现
Android中socket通信简单实现,供大家参考,具体内容如下socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP。先上个图:这里以一个APP作为服务器跟客户端为示例1、添加网络访问权限<uses-permissionandroid:name="android.permission.INTERNET"/>2、写服务器,在APP上启动importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.n...
继续阅读 >