自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

转载 PHP面试篇

(一) echo print print_r var_dump区别echo print 是语言结构print_r var_dump是普通函数echo:输出一个或多个字符串print:输出字符串print_r:打印关于变量的易于理解的信息var_dump:打印关于变量的易于理解的信息(带类型)(二)单引号和双引号的区别双引号可以被解析器解析,单引号则不行(三) isset和empty的区别isset:检测变量是否已设置并且非nullempty: 判断变量是否为空,变量为0/false也会

2020-12-15 21:02:42 486

原创 Linux下重设5.7版本及以上mysql数据库密码

一、进入mysql配置文件cd /etc/mysql/mysql.conf.d/ //进入此目录下vim mysqld.cnf //使用vim编辑器在最下面一行加上skip-grant-tables,加完之后按ESC按钮,然后 :wq 退出编辑//重启mysql服务器systemctl restart mysql这个时候登陆数据库 mysql -uroot -p 按两次回车即可进入数据库//然后设置数据库密码 >update user set authenti

2020-09-25 21:25:20 335

原创 JavaScript之BOM浏览器对象模型

一、BOM 概述什么是BOMBOM(Browser Object Model) 即浏览器对象模型 ,它提供了独立于内容而与浏览器窗口进行交互的对象,核心对象是windowBOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分BOM的构成BOM比DOM更大,包含DOM二、window对象的常见事件窗口加载事件,当文档内容完全加载完成后会触发该事件(包括图像,脚本文件,css文件等),就调用的处理函数

2020-07-16 18:29:06 408

原创 laravel之路由分组规则

一、路由分组将具有相同特征的路由进行分组,比如将后台的路由放在一个分组中,将前台的路由放在一个分组中,还可以根据业务需求自行选则分组规则,并且支持嵌套分组,通过Route::group将路由聚合到一起Route::group([],function(){ Route::get('/',function(){ return 'hello'; }); Route::get('/',function(){ return 'world'; });})使用中间件对HTTP请求进行过滤/

2020-07-16 13:07:24 3160

原创 laravel之路由入门

一、路由入门 在laravel中,定义路由的方式有两个入口,一个是routes/web.php,用于处理终端用户通过web浏览器直接访问的请求,另一个是routes/api.php,用于处理其它接入方的api请求。定义路由最简单的方式就是在routes/web.php中定义一个路径以及一个映射到该路径的闭包函数//routes/web.phpRoute::get('/test',function(){ return 'hello World!';});访问127.0.0.1:8000

2020-07-16 10:59:43 206

原创 thinkphp6.0之验证内置规则

一、内置规则1、内置的规则内容比较多,并且严格区分大小写2、静态方法支持两种形式,比如::number 或者isNumber均可3、require是php保留字,就要使用isRequire或must()4、格式验证类5、长度和区间验证类6、字段比较类7、其它验证类...

2020-03-30 17:42:10 1321

原创 thinkphp6.0之验证场景和路由验证

一、验证场景1、验证场景设置,将特定的场景下是否进行验证,独立验证不存在场景验证2、举一个简单的例子,新增数据需要验证邮箱,而修改更新时不验证邮箱3、可以在验证类Students.php中,设置一个$scene属性,用来限定场景验证protected $scene=[ 'insert' =>['name','upass','email'], 'edit' =&gt...

2020-03-30 17:38:31 1698

原创 Linux小知识之学前了解

一天一个Linux小知识!

2020-03-30 14:18:41 186

原创 thinkphp6.0之验证规则和错误信息

一、验证规则1、验证器定义的时候,也可以用数组的模式//validate端protected $rule = [ 'name' => ['require', 'max' => 10, 'checkName' => '李炎恢' ], ...2、数组模式在验证规则很多很乱的情况下,更容易关联,可读性高3、如果你想使用独立验证,就是手动调用验证类,而不是调用Stud...

2020-03-30 12:24:44 2139 1

原创 thinkphp6.0之验证器定义

一、验证器定义1、验证器的使用,必须先定义它,系统提供了一条命令直接生成想要的类php think make:validate 表名2、这条命令会自动再应用目录下生产一个validate文件夹,并生成Students类class Students extends Validate3、自动生成了两个属性:rule表示定义规则,rule表示定义规则,rule表示定义规则,message表...

2020-03-30 11:57:19 1296

原创 thinkphp6.0响应输出和重定向

一、响应输出1、响应输出有好几种:包括return、json和view等待2、默认的输出方式是以html格式输出,如果你发起json请求,则输出json3、而背后是response对象,可以用response输出达到相同的效果return response($data);4、使用response方法可以设置第二参数...

2020-03-30 11:15:56 2163

原创 thinkphp6.0之伪静态、参数绑定、请求缓冲

伪静态1、可以通过route.php修改伪静态的后缀,比如修改成shtml、xml等'url_html_suffix' =>'html',2、如果地址栏用后缀访问成功后,可以使用Request::ext()方法得到当前伪静态return Request::ext();3、配置文件伪静态后缀,可以支持多个,用竖线隔开'url_html_suffix' =>'shtml|x...

2020-03-29 20:28:46 983

原创 thinkphp6.0之请求类型和HTTP头信息

学习thinkphp6.0

2020-03-29 12:49:38 4233

原创 thinkphp6.0之初了解请求变量

一、请求变量1、Request对象支持全局变量的检测、获取和安全过滤2、使用has方法可以检测全局变量是否已经设置Request::has('id', 'get'); Request::has('username', 'post');3、Request支持的所有变量类型方法4、param变量方法是自动识别GET、POST等的当前请求,推荐使用//获取请求为name 的值,过滤 ...

2020-03-29 11:17:00 493

原创 thinkphp6.0之请求对象和信息

一、请求对象1、使用构造方法注入请求namespace app\controller; use think\Request;class Rely {protected $request;public function __construct(Request $request) { $this->request = $request; }public functio...

2020-03-28 17:05:57 418

原创 thinkphp6.0之门面Facade初了解

一、创建静态调用1、Facade,即门面设计模式,为容器的类提供了一种静态的调用方式2、在之前的很多课程中,我们大量的引入 Facade 类库,并且通过静态调用3、比如请求 Request::?,路由 Route::?,数据库 Db::?等等,均来自 Facade;4、我们手工来创建一个自己的静态调用类库,来了解一下流程;5、在应用目录下创建 common 公共类库文件夹,并创建 Tes...

2020-03-28 16:30:12 2181

原创 thinkphp6.0之了解容器和依赖注入

一、依赖注入1、在Model里创建一个类继承Modelnamespace app\model; use think\Model;class One extends Model { public $username = 'Mr.Lee'; }2、创建一个控制器Inject,通过依赖注入将模型One对象引入其内namespace app\controller; use app\...

2020-03-28 16:25:12 1506

原创 thinkphp6.0路由篇之注解路由和URL生成

一、注解路由注解路由需要安装扩展进行扩展安装需要执行命令:composer require topthink/think-annotation3.安装好后,使用use引入相关类库use think\annotation\Route;4.然后再控制器设置注解代码即可,可以使用PHPDOC生成一段,然后添加路由规则5、添加时必须使用双引号,单引号会报错/** * @param...

2020-03-28 16:16:09 4263 2

原创 thinkphp6.0路由篇之路由的分组和MISS

一、路由分组1、路由分组,即将相同前缀的路由合并分组,这样可以简化路由定义,提高匹配效率2、使用 group()方法,来进行分组路由的注册Route::group('address', function () { Route::rule(':id', 'Address/details'); Route::rule(':name', 'Address/search'); })-&gt...

2020-03-26 10:31:47 2191

原创 thinkphp6.0路由篇之路由的域名和跨域请求

一、域名路由1、要使用域名路由,首先需通过hosts文件来映射2、文件目录再C:\Windows\System32\drivers\etc3、 在末尾添加一句:127.0.0.1 news.abc.com 映射二级域名;4、此时,我们访问 news.abc.com 就直接映射到 localhost 里了如果想访问 thinkphp 独立的服务器,开启后,直接:8080 即可http:/...

2020-03-26 09:58:22 2676

原创 thinkphp6.0路由篇之路由的地址和参数

一、路由地址1、路由的地址一般为:控制器/操作方法构成//默认index控制器Route::rule('/', 'index');//控制器/操作方法 Route::rule('details/:id', 'Address/details');2、支持多级控制器,并且支持路由到相应的地址//目录为:app\controller\group namespace app\contro...

2020-03-26 09:35:45 5493

原创 thinkphp6.0路由篇之路由的变量规则和闭包

一、变量规则1、系统默认的路由变量规则为/w+,即字母下划线数字和中文;2、如果想要更改默认的匹配规则,可以修改config/route.php配置//默认的路由变量规则'default_route_pattern' =>'[\w\.]+';3、如果需要对于具体的变量进行单独的规则设置,需要通过pattern()方法4、将details方法李的id值,严格限制只能是数字\d+...

2020-03-25 18:06:58 1888

原创 thinkphp6.0路由篇之路由的定义

一、路由1、路由的作用是让URL地址更加规范和简洁2、设置路由对URL检测、验证等一系列操作提供了极大的便利3、路由是默认开启的//是否启用路由'with_route' =>false;4、路由的配置文件在config/route.php,定义文件在route/app.php5、创建Address控制器类,创建两个方法 public function details($id...

2020-03-25 17:45:46 5242

原创 thinkphp6.0模型篇之关联统计与输出

一、关联统计1、使用withCount()方法,可以统计主表关联附表的个数,输出用profile_count;$list=Students::withCount(['stumenu'])->select([20,21,11]);foreach($list as $user){ echo $user->stumenu_count; }2、关联统计的数据采用“关联方法名”_c...

2020-03-25 14:22:37 2126

原创 thinkphp6.0模型篇之关联预载入

1、在普通的关联查询下,我们循环数据列表会执行n+1次sql查询$list = UserModel::select([19, 20, 21]); foreach ($list as $user) { dump($user->profile); }2、采用关联预载入的方式,会执行两次查询$list=Students::with(['stumenu'])->select([...

2020-03-25 14:08:44 1178

原创 thinkphp6.0模型篇值一对多关联查询

一、hasMany模式1、hasMany模式,适合主表关联附表,适合一堆多查询,具体设置方式如下return $this->hasMany(stumenu::class,'外键','主键');2、使用stumenu()方法模式可以进一步进行数据的筛选$user->stumenu()->where('id','>',1)->select();3、使用has...

2020-03-25 13:58:10 5310 1

原创 thinkphp6.0模型篇之一对一关联查询

一、hasOne模式1、hasOne模式适合主表关联附表hasOne('关联模型',['外键','主键']);return $this->hasOne(Stumenu::class,'stu_id','id');//关联模型(必须):关联的模型名或者类名 //外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如 user_id //主键:当前模型主键,默认会自动...

2020-03-25 13:42:41 2156

原创 thinkphp6.0模型篇之关联模型

一、关联模型定义1、关联模型就是将表与表之间进行关联和对象化,更高效的操作数据2、创建两个表的空模型,在含有主键的表中关联另一个表public function stumenu() { //hasOne表示一对一关联,参数一表示附表,参数二表示外键,参数三表示主键 return $this->hasOne(Stumenu::class,'stu_...

2020-03-25 13:02:43 4786 1

原创 thinkphp6.0模型篇之模型和数据库事件

一、数据库事件1、执行增删改查的时候,可以触发一些事件来执行额外的操作2、这些额外的事件可以部署在构造方法里等待激活执行3、数据库事件执行方法为Db::event(‘事件名’,‘执行函数’),具体事件名如下4、数据库事件只正常find、select、update、delete、insert这几个方法5、在控制器端,事件一般可以写在初始化方法里,方便统一管理public functio...

2020-03-25 12:53:33 1311

原创 thinkphp6.0模型篇之模型的软删除

一、模型软删除1、首先需要在模型端设置软删除的功能,引入softDelete,它是traituse SoftDelete;protected $deleteTime='delete_time';2、delete_time默认设置的是null,如果想更改这个默认值,可以设置//protected $defaultSoftDelete=0;3、软删除和方法如下,包括destroy和de...

2020-03-25 12:38:48 2853

原创 thinkphp6.0模型篇之JSON字段

一、数据库JSON1、数据库写入json字段,直接通过数据的方式即可完成$data=['id' =>1,'upass' =>'admin','email' =>'66461682@qq.com','list' =>['username'=>'admin', 'gender'=>'女', 'email'=>'66461682@qq.com']...

2020-03-25 12:03:42 2618 3

原创 thinkphp6.0模型篇之模型的数据类型和转换

一、模型类型转换1、系统可以通过模型端设置写入或读取时对字段类型进行转换2、在模型端设置想要类型转换的字段属性,属性值为数组protected $type=['price' => 'integer', 'status' => 'boolean', 'create_time' => 'datetime:Y-m-d'];3、数据库查询读取的字段很多都是字符串类型,我...

2020-03-24 22:52:20 1802

原创 thinkphp6.0模型篇之模型的自动时间戳和只读字段

一、模型自动时间戳1、如果你想全局开启,在database.php中,设置为true//自动写入时间戳字段'auto_timestamp'=>true;

2020-03-24 22:42:14 2678

原创 thinkphp6.0模型篇之模型的搜索器和数据集

一、模型搜索器1、搜索器是用于封装字段(或搜索标识)的查询表达式,类似查询范围2、一个搜索器对应模型的一个特殊办法,改方法为public3、方法名的命名规范为:searchFieldAttr();4、封装一个邮箱字符模糊查询,然后封装一个时间限定查询5、在Students模型端下,创建两个对外的方法//模型端public function searchEmailAttr($query...

2020-03-24 19:24:22 1688

原创 thinkphp6.0模型篇之模型的查询范围

一、模型查询范围1、在模型端创建一个封装的查询或写入方法,方便控制器端等调用2、封装一个筛选出权限为1的查询,并且只显示部分字段5条3、方法名规范:前缀scope,后缀随意,调用时直接把后缀作为参数使用public function scopeMale($query){$query->where('type','1') ->field('id','uname','up...

2020-03-24 19:02:42 1599 1

原创 thinkphp6.0模型篇之模型的获取器和修改器

一、模型获取器1、获取器的作用是对模型实例的数据做出自动处理2、一个获取器对应模型的一个特殊方法,改方法为public3、方法名的命名规范:getFieldAttr();4、数据库表示状态status字段采用的是数值,而在页面上,我们需要输出status字段希望是中文,就可以使用获取器5、在Studnets模型端,创建一个对外的方法public function getStatusAt...

2020-03-24 18:20:13 2711

原创 thinkphp6.0模型篇之模型的字段设置

一、字段设置1、模型的数据字段和表字段是对应关系,默认会自动获取,包括字段的类型2、自动获取会导致增加一次查询,如果再模型中配置字段信息,会减少内存开销3、可以再模型设置$schema字段,明确定义字段信息,字段需要对应表写完整//设置字段信息,需要写完整的数据表字段protected $schema =['id' =>'int','uname' =>'string',...

2020-03-24 17:59:15 3461

原创 thinkphp6.0模型篇之模型的数据查询

一、数据查询1、使用find方法,通过主键id查询到想要的数据$user=Students::find(147)return json($user);2、也可以使用where方法进行条件筛选查询数据$user=Students::where('id',1)->find();return json($user);3、调用find方法时,如果数据不存在则返回null4、还要f...

2020-03-24 14:58:16 4768

原创 thinkphp6.0之模型篇之模型的数据更新

一、数据更新1、使用find方法获取数据,然后通过save方法保存修改,返回布尔值$user = UserModel::find(11); $user->username = '李黑'; $user->save()2、通过where方法解和find方法的查询条件获取的数据进行修改$user=Students::where('id',1)->find();$user...

2020-03-24 13:27:37 2284

原创 thinkphp6.0之模型篇之模型的新增和删除

一、数据新增1、使用实例化的方式添加一条数据//第一种实例化方式$user=new Students();//第二种实例化方式$user=new \app\model\Students();2、设置要新增的数据,然后用save()方法写入到数据库中,save返回布尔值$user->username = '李白'; $user->password = '123'; $...

2020-03-24 13:13:07 1595

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除