PHP
文章平均质量分 52
小小白学计算机
这个作者很懒,什么都没留下…
展开
-
四、PHP基础——会话技术Cookie 和 Session
会话技术初步认识会话技术介绍web会话可简单理解为:用户开一个浏览器,访问某一个web站点,在这个站点点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。HTTP协议的特点是无状态/无连接,当一个浏览器连续多次请求同一个web服务器时,服务器是无法区分多个操作是否来自于同一个浏览器(用户)。会话技术就是通过HTTP协议想办法让服务器能够识别来自同一个浏览器的多次请求,从而方便浏览器(用户)在访问同一个网站的多次操作中,能够持续进行而不需要进行额外的身份验证。会话技术分类原创 2021-06-10 09:25:57 · 472 阅读 · 1 评论 -
三、PHP基础——HTTP协议 & 文件编程
一、HTTP协议初步认识HTTP协议概念HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP协议特原创 2021-06-08 16:56:55 · 751 阅读 · 2 评论 -
二、PHP基础——连接msql数据库进行增删改查操作 & 实战:新闻管理项目
Mysql扩展PHP针对MySQL数据库操作提供的扩展:允许PHP当做MySQL的一个客户端连接服务器进行操作。连库基本操作连接数据库服务器1)资源 mysql_connect(服务器地址,用户名,密码)连接资源默认也是超全局的,任何地方都可以使用该资源进行数据库的其他操作补充:mysql_connect默认是对一个服务器只连接一次(如果再次运行,返回的是同一个资源),但是如果有需要连接同一个资源两次,那么可以使用第四个参数:TRUE设置连接编码保持客户端与服务器之间的沟通顺畅:同一“语原创 2021-06-08 16:07:24 · 1154 阅读 · 3 评论 -
一、PHP基础——表单传值、上传文件
表单传值概念:表单传值即浏览器通过表单元素将用户的选择或者输入的数据提交给后台服务器语言。为什么使用表单传值?动态网站(Web2.0)的特点就是后台根据用户的需求定制数据,所谓的“需求”就是用户通过当前的选择或者输入的数据信息,表单就是这些数据的承载者。表单传值方式GET传值1)form表单<form method=”GET”>表单元素</form>2)a标签<a href=”www.itcast.cn/index.php?学科=PHP”&原创 2021-06-06 18:18:44 · 1629 阅读 · 2 评论 -
1+X web中级 Laravel学习笔记——Eloquent ORM查询、更新、删除、新增
Eloquent ORM简介larave1所自带的Eloquent oRM是一个非常优美简洁的ActiveRecord实现,用来实现数据库的操作他的每个数据的表都有对应的模型(model)用于数据表的交互模型的建立一、Eloquent ORM的查询二、Eloquent ORM新增通过模型新增数据(涉及到自定义时间戳)解决方法:通过模型的create方法新增数据(涉及到批量赋值)三、Eloquent ORM更新效据通过模型更新数据结合查询语句.原创 2021-06-03 14:53:31 · 413 阅读 · 0 评论 -
1+X web中级 Laravel学习笔记——查询构造器简介及新增、更新、删除、查询数据
一、新增数据插入多条数据:二、更新数据更新某条数据:自增某字段的值:自减某字段的值:自增的同时改变其他字段的值:三、删除数据四、查询查面构造器查面数据有以下几种方法get()first()where()pluck()select()chunk()...原创 2021-06-03 11:43:27 · 276 阅读 · 0 评论 -
1+X web中级 Laravel学习笔记——使用DB facade对数据库进行增删改查
原创 2021-06-03 09:32:39 · 135 阅读 · 0 评论 -
1+X web中级 Laravel学习笔记——视图和模型
原创 2021-06-03 08:58:24 · 188 阅读 · 0 评论 -
1+X web中级 Laravel学习笔记——路由和控制器的简单使用
原创 2021-06-02 17:20:35 · 134 阅读 · 1 评论 -
1+X web中级 Laravel学习笔记——Laravel中的路由
原创 2021-06-02 11:32:43 · 150 阅读 · 0 评论 -
三十、PHP框架Laravel学习笔记——模型的预加载
一.预加载预加载,就是解决关联查询中产生的 N+1 次查询带来的资源消耗我们要获取所有书籍的作者(或拥有者),普通查询方案如下://获取所有书籍列表$books = Book::all(); //遍历每一本书foreach ($books as $book) { //每一本书的关联用户的姓名 DebugBar::info($book->user->username); }PS:通过调试器 Debugbar 中 SQL 语句的分析,发现包含十多条 SQL 语句;原创 2021-06-01 15:49:21 · 454 阅读 · 3 评论 -
二十九、PHP框架Laravel学习笔记——Debugbar 调试器
二.安装使用通过 composer 在项目中安装 Debugbar,命令如下:composer require barryvdh/laravel-debugbar生成一个配置文件,给用户配置,可以根据需求进行配置;php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"刷新页面,即可看到底部的调试工具,message 信息还需要引入;use Barryvdh\Debugbar\Fac原创 2021-06-01 15:22:07 · 814 阅读 · 1 评论 -
二十八、PHP框架Laravel学习笔记——模型的关联查询
二.关联查询前几篇博文,了解了三种基础的关联模型,并简单的进行查询;本节课,我们详细的了解更多的查询方案;//下面两种查询是一样的;$books = User::find(19)->book; $books = User::find(19)->book()->get(); //可以采用 where 筛选或闭包$books = User::find(19)->book() ->where('id', 1)->orWhere('id', 11)->原创 2021-06-01 15:01:32 · 528 阅读 · 0 评论 -
二十七、PHP框架Laravel学习笔记——模型的多对多关联
二.多对多关联多对多关联,比前面两种要复杂一些,需要一张中间表,共三张;(1) .users:用户表;(2) .roles:权限表;(3) .role_user:中间表:默认表名,user_id,role_id,默认外键可不指明;创建权限表:Role.php,留空;在 User.php 设置多对多关联;//多对多关联public function role() { return $this->belongsToMany(Role::class, 'role_user',原创 2021-06-01 14:37:27 · 360 阅读 · 1 评论 -
二十六、PHP框架Laravel学习笔记——模型的一对多关联
二.一对多关联一对多关联,本质上使用方法和一对一关联类似,内部实现略有不同;创建另一个模型:book.php,我们看下这个表数据;PS:这里 user_id=19 有三个,也就是蜡笔小新有三本书,三个关联数据记录;正向关联:创建一个空的 booke.php,在 User.php 进行对其关联;//正向,一对多关联 Book 表public function book() { return $this->hasMany(Book::class, 'user_id',原创 2021-05-31 12:19:48 · 425 阅读 · 1 评论 -
二十五、PHP框架Laravel学习笔记——模型的一对一关联
一.关联概念关联模型,即:两张或以上的表进行一定规则的绑定关联;比如:一个学生(学生表)对应一张个人信息卡(信息表),这种就是一对一;再比如:一篇博文(帖子表)对应多个评论(评论表),这种就是一对多;再再比如:一个用户(用户表)对应多个职位(权限表), 而一个职位又可以有多个用户;那么,这种就是多对多关联;自然,还有更多更复杂的关联,都是基于此的,我们只探讨这三种;既然是关联,当然会有绑定的概念,当有数据库操作,关联表也会跟着变动;这就是关联模型的意义;二.一对一关联一对一关联,我原创 2021-05-30 17:26:18 · 395 阅读 · 1 评论 -
二十四、PHP框架Laravel学习笔记——模型的数据集合
一.数据集合数据集合,就是已经将模型方法 get()获取到的数据再进行处理;比如:map()方法,通过它可以实现类似访问器一样对字段进行处理的效果;$users = User::get();//使用集合方法 map 可以对输出的字段进行过滤 $women = $users->map(function ($user) { $user->email = strtoupper($user->email); return $user;原创 2021-05-30 17:01:57 · 253 阅读 · 0 评论 -
二十三、PHP框架Laravel学习笔记——集合的常用方法
一.常用方法all()方法,转换为属性形式输出,使用 dd 方法看类型;$collection = collect([1, 2, 2, 3, 4, 4, 4]); dd($collection->all()); PS:$collection->dd()方法可以以 dd()模式输出,还有 dump()模式;avg()方法返回平均值;//返回平均值 $collection = collect([1, 2, 3, 4]); return $collection->av原创 2021-05-14 17:31:01 · 752 阅读 · 11 评论 -
二十二、PHP框架Laravel学习笔记——集合的使用
一.创建集合什么是集合?即:它是一种更具读取性和处理能力的数组封装;比如,我们从数据库得到的数据列表,它就是一种集合;数据集合,提供了大量的方法方便我们进行各种操作;除了数据库对象返回的数据集合之外,我们还可以自行创建数据集合;//创建一个数据集合 $collection = collect(['张三', '李四', '王五', null]); //使用 dd 查看它的类型 dd($collection); //直接 return 可以返回 return $collection;原创 2021-05-14 17:00:30 · 368 阅读 · 7 评论 -
二十一、PHP框架Laravel学习笔记——模型的访问器和修改器
一.访问器访问器:就是在获取数据列表时,拦截属性并对属性进行修改的过程;比如,我们在输出性别时,在性别左右加上括号,或给邮件转换为大写;//访问器,前固定 get,后固定 Attribute,Gender 是字段名 //参数$value 是源字段值,可修改返回 public function getGenderAttribute($value) { return '【'.$value.'】'; }PS:如果字段名是两个单词中间是下划线:user_name,那么方法名:getUser原创 2021-05-14 10:38:53 · 331 阅读 · 0 评论 -
二十、PHP框架Laravel学习笔记——模型的作用域
一.本地作用域很多情况下,我们在数据查找时有一部分条件会被重复且大量使用;而这个条件,可能只是在这个模型对应的数据表使用,别的表并不使用;那么这种情况,可以使用本地作用域的方式,将常用的 SQL 封装起来;比如:用户模块中,我们大量查询需要查询性别为男,且其它条件的 SQL;$users = User::where('gender', '男') ->where('price', '>', 90) ->get(); PS:我们可以将性别为男这个片段,封装成一个单独的方法,然原创 2021-05-14 10:16:59 · 329 阅读 · 0 评论 -
十九、PHP框架Laravel学习笔记——批量赋值和软删除
一.批量赋值上一节增删改中,新增中我们发现需要进行批量赋值的许可;一般情况下,是为了防止提交过来的字段在部分场景中不需要或不能;所以,我们需要通过黑白名单机制进行过滤掉必要的字段;//通过提交过来的数据一次性新增User::create(\Request::all());二.软删除什么叫软删除?它相对于真实的删除,而并非真正的删除,只是隐藏了;首先,需要在数据库创建一个字段 deleted_at(默认),用于判断是否被软删除;默认设置这个字段为空(null),如果写入数据,成为原创 2021-05-14 00:25:16 · 441 阅读 · 0 评论 -
十八、PHP框架Laravel学习笔记——模型的增删改
一.增删改操作新增方法如下,注意:默认模型接管 created_at 和 updated_at;$users = new User(); $users->username = '辉夜'; $users->password = '123'; $users->email = 'huiye@163.com'; $users->details = '123'; $users->save(); 更新,只要是查找到一条数据的情况下使用 save()就是更新;原创 2021-05-13 21:44:18 · 698 阅读 · 11 评论 -
十七、PHP框架Laravel学习笔记——模型的定义
一.默认设置框架可以使用 Eloquent ORM 进行数据库交互,也就是关系对象模型;在数据库入门阶段,我们已经创建了一个 User.php 模型,如下:php artisan make:model Http/Models/User //默认在 app 目录而调用的时候,我们也知道表名要遵循它默认规则,修改为复数,或特定;class User extends Model { protected $table = 'user'; } 系统假定你的主键为 id,如果你要原创 2021-05-13 20:31:39 · 258 阅读 · 2 评论 -
十六、PHP框架Laravel学习笔记——构造器的增删改
一.增删改操作使用 insert()方法可以新增一条或多条记录;//新增一条记录 DB::table('users')->insert([ 'username' => '李白', 'password' => '123456', 'email' => 'libai@163.com', 'details' => '123' ]); //新增多条记录 DB::table('users')->insert([ [...], [...] ]); 使用原创 2021-05-10 00:29:50 · 358 阅读 · 2 评论 -
十五、PHP框架Laravel学习笔记——构造器的 join 查询
一.join 查询使用 join 实现内联接的多表查询,比如三张表进行 inner join 查询;$users = DB::table('users') ->join('books', 'users.id', '=', 'books.user_id') ->join('profiles', 'users.id', '=', 'profiles.user_id') ->select('users.id', 'users.username', 'users.email', 'book原创 2021-05-09 23:53:08 · 980 阅读 · 0 评论 -
十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询
一.排序分组使用 whereColumn()方法实现两个字段相等的查询结果;//判断两个相等的字段,同样支持 orWhereColumn() //支持符号'create_time','>', 'update_time' //支持符号支持数组多个字段格式['create_time','>', 'update_time'] $users = DB::table('users') ->whereColumn('create_time', 'update_time') ->ge原创 2021-05-08 17:48:50 · 518 阅读 · 1 评论 -
十三、PHP框架Laravel学习笔记——构造器的 where 派生查询
一.where 派生查询orWhere()方法,可以通过连缀实现两个或以上的 or 条件查询;//where() + orWhere 实现 or 条件查询 $users = DB::table('users') ->where('price', '>', 95) ->orWhere('gender', '女') ->toSql(); 通过闭包,我们还可以构建更加复杂的 orWhere 查询;//orWhere()结合闭包查询 $users = DB::tab原创 2021-05-08 13:04:08 · 745 阅读 · 1 评论 -
十二、PHP框架Laravel学习笔记——构造器的查询表达式
一.select 查询select()方法可以制定你想要的列,而不是所有列;//设置显示的列,设置列别名 $users = DB::table('users')->select('username as name', 'email')->get(); addSelect()方法,可以在你基础的查询构造器上再增加想要显示的字段;//给已经构建好的查询添加更多字段 $base = DB::table('users')->select('username as name原创 2021-05-07 21:07:53 · 416 阅读 · 2 评论 -
十一、PHP框架Laravel学习笔记——构造器的查询.分块.聚合
一.构造器查询table()方法引入相应的表,get()方法可以查询当前表的所有数据;//获取全部结果 $users = DB::table('users')->get(); first()方法,可以获取到第一条数据;//获取第一条数据 $users = DB::table('users')->first(); value(字段名)方法,可以获取到第一条数据的指定字段的值;//获取第一条数据的 email 字段值 $users = DB::table('u原创 2021-05-07 15:47:13 · 304 阅读 · 0 评论 -
十、PHP框架Laravel学习笔记——数据库配置入门
一.配置数据库框架支持原生、查询构造器和 Eloquent ORM(关系型对象映射器)来操作数据库;数据库的配置在 config/database.php,如果是本地可以直接配置.env 文件;我们通过.env 文件配置数据库连接的相关信息,以提供给 database 读取;我们可以直接创建一个新的控制器 DataController 来测试数据库部分;数据库有一个专用类 DB,可以用它来实现原生查询和构造器查询;//使用 DB 类的 select()方法执行原生 S原创 2021-05-07 15:12:51 · 354 阅读 · 0 评论 -
八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护
一.表单伪造之前一直用的 GET 请求方式,而表单可以实现 POST 方式,我们来实验下:先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由;public function form() { return view('form'); }//表单页Route::get('task/form', 'TaskController@form'); //接受表单数据Route::any('task/getform', function () {原创 2021-05-07 10:43:47 · 366 阅读 · 0 评论 -
七、PHP框架Laravel学习笔记——资源控制器
一.资源控制器声明:资源控制器是某个特定场景下的产物,完全理解需要 PHP 项目基础;比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的…;只是学习了 PHP 基础,就立刻学习框架的同学,可以过一遍即可(不影响后续)…;有一种控制器专门处理 CURD(增删改查),方法很多且方法名基本固定;对于这种控制器,我们可以将它设置为资源型控制器,不要大量设置路由;这里推荐直接使用命令行生成资源路由,比如:BlogController;php artisan make:controller原创 2021-05-06 16:53:26 · 517 阅读 · 3 评论 -
六、PHP框架Laravel学习笔记——响应设置和重定向
一.响应设置路由和控制器处理完业务都会返回一个发送到浏览器的响应:return;比如字符串会直接输出,而数组则会输出 json 格式,本身是 Response 对象;return [1, 2, 3]; //输出 json 格式 return response([1, 2, 3]); //同上 return response()->json([1, 2, 3]); //同上如果使用 response()输出的话,可以设置状态码和响应头信息;return response原创 2021-05-05 20:24:53 · 456 阅读 · 1 评论 -
五、PHP框架Laravel学习笔记——回退、当前路由、单行为
一.单行为控制器之前的课程,我们简单的创建和定义了控制器,并继承了控制器基类;为何要继承基类?因为继承基类后,可以使用基类的方法,比如中间件等;继承基类后除了支持中间件快捷使用,还支持验证、列队等快捷方法;public function __construct() { $this->middleware('中间件'); } 如果你想要定义一个只执行一个方法的控制器,可以使用单行为控制器;单行为控制器使用__invoke()方法,可以使用命令行创建;php artisan原创 2021-05-05 19:41:16 · 332 阅读 · 0 评论 -
四、PHP框架Laravel学习笔记——路由命名和分组
一.路由命名给一个制定好的路由进行命名,可以生成 URL 地址或进行重定向;Route::get('task', 'TaskController@index') ->name('task.index'); 在控制器区域,使用助手函数 route()来获取路由生成的 URL 地址;//生成 url 地址,http://localhost:8000/taskroute('task.index'); PS:URL 是 URI 的子集,更多区别请百度;route()助手的第二原创 2021-05-05 15:16:01 · 761 阅读 · 0 评论 -
一、PHP框架Laravel——入门和安装
一.版本化方案Laravel 框架是一款简洁、优秀且优雅的 PHP 开发框架;Laravel 到底怎么读,由于不是真实的单词,导致争论较多目前已知:['lærəvel]['lɑːrəvel]['lɑːrvl]有这几种;Laravel 从 6.x 开始进入到版本化方案,每六个月发布一次版本;这种版本策略在软件版本上也经常看到,比如 Firefox 火狐浏览器;早期一直用 v3.5 这个版本,后来就开始疯狂升级,升级了几年现在 v73.0.1;那么对于这种升级策略来说,基础语法几乎不会有太多变动原创 2021-05-05 13:56:38 · 2658 阅读 · 6 评论 -
三、PHP框架Laravel学习笔记——路由参数、重定向、视图
一.路由参数上一节课,我们已经学习了部分路由参数的功能,比如动态传递{id};那么,有时这个参数需要进行约束,我们可以使用正则来限定必须是数字;Route::get('task/read/{id}', 'TaskController@read') ->where('id', '[0-9]+'); //单个参数 ->where(['id'=>'[0-9]+', 'name'=>'[a-z]+']); //多个参数如果想让约束 id 只能是 0-9 之间作用域全局原创 2021-05-05 13:39:25 · 351 阅读 · 3 评论 -
二、PHP框架Laravel学习笔记——路由的定义和控制器
一.路由的定义什么是路由?路由就是提供接受 HTTP 请求的路径,并和程序交互的功能;简单点理解,就是为了提供访问程序的 URL 地址,所做的一些设置工作;phpstorm 支持 cmd 操作,左下角 Terminal 按钮展开,调整字体即可;输入 php artisan serve命令后,即支持 localhost:8000 内置服务器;路由的定义文件在根目录 routes/web.php 中,可以看到 welcome 页面;我们创建一个路由,让它返回一段信息,并设原创 2021-05-05 11:39:26 · 601 阅读 · 8 评论