Laravel
Cure The World
不服输的,才是青春。
展开
-
Laravel博客系统开发--共享视图
为了避免多次查询相同的数据,可以在基础控制器中定义方法并使用View::share()分配模板变量,实现多次使用。1.在Http\Controllers\Controller.php中定义多次使用的方法;//前台共享视图 //共享视图 public function __construct() { $cates=Cate::orderBy('sort')->get(); $topArticle=Article::where(['is_top'=&g原创 2020-09-15 22:24:08 · 833 阅读 · 0 评论 -
Laravel博客系统开发--关联删除
1.在Article模型中关联Comment表//关联comment表public function comments(){ return $this->hasMany('App\\Models\\Comment','article_id','id'); }2.在控制器空关联载入,然后执行循环删除3.效果如下原创 2020-09-15 22:20:38 · 1070 阅读 · 0 评论 -
Laravel博客系统--登录验证(中间件)
登录验证为了防止在地址栏中直接访问admin/index,我们自定义一个中间件来判断用户是否登录1.新建一个AdminLogin中间件,并添加如下代码判断session中是否有值,命令:#php artisan make:middleware AdminLogin2.绑定路由中间件3.在路由中使用中间件...原创 2020-09-11 11:08:39 · 1782 阅读 · 0 评论 -
Laravel博客系统--退出登录
退出登录功能1.定义一条退出登录路由<?phpuse Illuminate\Support\Facades\Route;Route::group(['prefix'=>'admin','namespace'=>'Admin'],function (){ //登录 Route::match(['get','post'],'/','Index@login'); //注册 Route::match(['get','post'],'register','In原创 2020-09-11 10:19:17 · 1577 阅读 · 0 评论 -
Laravel博客系统开发--邮件操作(忘记/重置密码)
忘记密码邮件扩展1.在app目录下创建common.php文件(公共文件)2.下载邮件扩展composer require phpmailer/phpmailer3.在common.php文件中编写发送邮件函数<?phpnamespace App;use PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;function mailto($to,$title,$content){ $mail原创 2020-09-10 20:57:28 · 1142 阅读 · 0 评论 -
Laravel博客系统开发--注册功能
注册功能1.定义注册路由代码如下Route::group(['prefix'=>'admin','namespace'=>'Admin'],function (){ //登录 Route::match(['get','post'],'/','Index@login'); //注册 Route::match(['get','post'],'register','Index@register');});2.引入HTML模板form表单代码如下 &l原创 2020-09-10 10:44:10 · 481 阅读 · 0 评论 -
Laravel博客系统开发--登录功能
登录功能1.定义一条路由Route::group(['prefix'=>'admin','namespace'=>'Admin'],function (){ //登录 Route::match(['get','post'],'/','Index@login');});2.创建控制器Index,模型Admin,以及视图login.blade.php的创建和前端模板的引入登录功能通过ajax异步提交form表单中的数据,将数据接收,再将数据传递给模型,最好验证再返回给控原创 2020-09-10 10:07:36 · 909 阅读 · 0 评论 -
Laravel框架中关联模型操作
关联模型(重点+难点)关联模型就是绑定模型(表)的关系(关联表),后续需要使用联表的时候就可以直接使用关联模型。注意:关联模型必须要创建模型。1、一对一关系例如:一篇文章只有一个作者①创建模型【前提】#php artisan make:model Home/Article#php artisan make:model Home/Author②定义基本的结构代码③关联模型的关联方法(重点)注意:在写关联模型的时候要分析出是谁关联谁,谁做主动关联的模型?当前的案例是文章关联作者,需要关联代原创 2020-09-09 10:30:59 · 1584 阅读 · 0 评论 -
Laravel框架中连表查询
联表查询联表要求至少得有2张表(除了自己连接自己),并且还是存在关系的两张表。例如:可以建立2张表:文章表、作者表。文章表(article): Id 主键 Article_name 文章名称 Author_id 作者(作者id)作者表(author): Id 主键 Author_name 作者名称①创建迁移文件#php artisan make:migration create_article_table#php artisan make:migrat原创 2020-09-08 09:54:05 · 2421 阅读 · 0 评论 -
Laravel框架中缓存操作
缓存操作Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 目前支持主流的缓存后端如 Memcached 和 Redis 等。主要方法:Cache::put()Cache::get()Cache::add()Cache::pull()Cache::forever()Cache::forget()Cache::has()系统默认是使用文件缓存,其缓存文件存储的位置位于(s原创 2020-09-08 08:31:46 · 2264 阅读 · 0 评论 -
Laravel框架中会话控制的使用
会话控制(记忆)常见应用- 增删改查session默认存到文件中session文件的目录:storage\framework\sessions1、使用Session门面控制器头部引用 use Illuminate\Support\Facades\Session;由于session门面在app.php中已经定义好别名,所以在控制器中引入的时候可以直接use SessionSession::put(‘key’, ‘value’); Session中存储一个变量$value = Sessio原创 2020-09-07 14:54:50 · 778 阅读 · 1 评论 -
Laravel框架中响应处理
响应处理在laravel中,响应正常情况下有2个类型:常规的直接响应,另外一个是ajax的响应。其中展示视图以及直接响应字符串都属于常规的响应。例如:常规响应展示视图:return view(‘welcome’);直接返回某个字符串:return ‘hello world’;1、ajax请求的响应常见的ajax响应数据类型:json和xml、text/html。案例:在页面中输出一个按钮,按钮要可以被点击,点击之后发送ajax请求,请求后台的数据,后台返回前端ajax一个json的数据(原创 2020-09-07 14:25:46 · 731 阅读 · 0 评论 -
项目初始化(使用laravel 做项目)
项目初始化(使用laravel 做项目)1、创建laravel项目通过composer进行创建:#composer create-project laravel/laravel=5.4.* --prefer-dist ./2、建立数据库创建数据的方式有很多种:可以通过pma、mysqlCLI方式、navicat等等修改.env文件,配置数据库的连接操作:3、设置网站本地化为中文修改语言包的配置:下载语言包:#composer require caouecs/laravel-lang:~3.原创 2020-09-07 11:27:44 · 690 阅读 · 0 评论 -
Laravel框架中数据表的迁移与填充操作
数据表的迁移与填充迁移:创建数据表的操作+删除数据表的操作填充:往数据表里填充写入测试的数据(数据的插入操作)1、数据的迁移操作在迁移过程中,操作可以分为两个部分:创建与编写迁移文件、执行迁移文件。1.1、迁移文件的创建与编写迁移文件默认的位置:已经存在的2个文件,如果不打算使用系统自带的认证模块的话需要删除掉。①创建迁移文件案例:需要创建试卷的数据表,假设数据表的名字叫做paper。迁移文件名:create_paper_table创建的时候可以通过自动代码生成工具artisan命令来原创 2020-09-07 09:38:57 · 669 阅读 · 0 评论 -
Laravel框架中验证码的操作
验证码回顾:生成验证码需要经过:画画布、生成干扰线、生成噪点、生成验证码、生成验证码存入session、输出图片。1、验证码依赖安装去packagist网站搜索验证码的代码依赖:关键词:captcha地址:https://packagist.org/packages/mews/captcha环境要求:php>=5.4,需要开启GD库,同时需要开启fileinfo和mbstring扩展Composer方法安装代码依赖包:composer require mews/captcha修改配置文原创 2020-09-06 20:34:33 · 685 阅读 · 0 评论 -
Laravel框架中的数据分页操作
数据分页在laravel里面要完成分页是很简单的,它的思想之前的框架有些不一样,之前框架使用的是分页类完成分页,laravel是直接调用模型的分页方法,返回对应的数据和分页的字符串。分页类的在框架中的位置(了解):案例:使用分页功能实现当前member数据表的分页效果。由于数据量较少,可以考虑每页显示1个记录,重点是分页的效果回忆/问题:分页效果的实现大致需要哪几个步骤才能实现?a. 查询符合分页条件的总的记录数b. 计算总的页数(总记录数/每页记录数,并且向上取整)c. 拼凑分页的链接d原创 2020-09-06 18:12:59 · 2217 阅读 · 0 评论 -
Laravel框架中的上传文件操作
文件上传在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的。使用时可以参考手册。(1)修改表结构,添加一个字段。ALTER TABLE `member`ADD COLUMN `avatar` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `email`;(2)创建添加数据的表单和路由添加路由:/home/test/test14创原创 2020-09-05 15:27:46 · 1970 阅读 · 0 评论 -
Laravel框架中的自动验证
自动验证【重点】一般一个框架都会提供自动验证的机制,在TP里面的验证的规则是写在模型里面进行验证的,但是自laravel里面的思想有些不一样,它的验证规则可以在控制器里面,也可以单独的写一个专门的验证文件。并且laravel里面的验证不通过情况下的提示信息和表单数据是保存在session里面的,并且验证不通过的情况下会跳到上一个页面。在前端页面中可以通过JavaScript验证表单的数据有效性,但是如果用户的浏览器过低或者直接禁用js,则前端验证则可能会失效,这样就不能保证数据的有效性。所以后端也需做相原创 2020-09-05 11:57:42 · 837 阅读 · 0 评论 -
Laravel框架中模型操作(AR模式)
模型操作(AR模式)【理解】Laravel 自带的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的“Model模型”,模型允许你在表中进行数据查询,以及插入、更新、删除等操作。AR模式三个核心(映射):每个数据表 与数据表进行交互的Model模型映射(实例化模型)记录中的字段 与模型类的属性映射(给属性赋值)表中的每个记录 与一个完整的请求实例映射(具体的CURD操作)1、定义模型(1)定义位原创 2020-09-04 08:26:38 · 1552 阅读 · 0 评论 -
Laravel框架中的CSRF攻击
1、什么是CSRF攻击CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写:Laravel框架中避免CSRF攻击很简单:Laravel自动为每个用户Session生成了一个CSRF Token,该Token可用于验证登录用户和发起请求者是否是同一人,如果不是则请求失败。【该原理和验证码的原理是一致】Laravel提供了一个全局帮助函数csrf_token来获取该Token值,因此只需在视图提交表单中添加如下HTML代码即可在请求中带上Token:2、Larave原创 2020-09-01 15:31:46 · 868 阅读 · 0 评论 -
Laravel框架中的视图操作
1、视图写哪里?2、视图文件的命名与渲染(1)文件名习惯小写(建议小写)(2)文件名的后缀是 .blade.php(因为laravel里面有一套模板引擎就是使用blade,可以直接使用标签语法{{ $title }}, 也可以使用原生的php语法显示数据。)(3)需要注意的是也可以使用.php结尾,但是这样的话就不能使用laravel提供的标签{{ $title }}语法显示数据,只能使用原生语法 <?php echo $title;?> 显示数据两个视图文件同时存在,则.blade原创 2020-09-01 15:12:11 · 1558 阅读 · 0 评论 -
Laravel框架中DB类的使用
1、增加信息(insert)对数据库中的某个表增加数据主要有两个函数可以实现,分别是insert()和insertGetId()insert(数组)可以同时添加一条或多条,返回值是布尔类型。insertGetId(一维数组),只能添加一条数据,返回自增的id。注意:DB::table(‘无前缀的表名’) -> insert(); 连贯操作/链式操作2、修改数据( update)数据修改可以使用update()、increment()和decrement()函数来实现。 Updat原创 2020-09-01 09:45:26 · 2407 阅读 · 0 评论 -
Laravel框架中控制器的使用
控制器使用1、控制器文件写在哪里?其位置位于app/Http/Controllers2、控制器文件如何命名?依照已经存在的四个范例控制器文件名可以得知其命名方式为:大驼峰的控制器名 + Controller.php例如,如果需要创建一个商品goods控制器,则命名为:GoodsController.php3、结构代码如何书写?注意:其控制器基础结构代码,不需要自己去手动编写,可以通过artisan命令行来自动生成。因此需要记住对应的命令:#php artisan make:control原创 2020-08-29 21:51:23 · 1301 阅读 · 0 评论 -
Laravel入门使用(路由)
Laravel入门使用(路由)什么是路由:将用户的请求按照事先规划的方案提交给指定的控制器或者功能函数来进行处理.【通俗的讲,路由就是访问地址形式】在博客中,当我们在URL地址中,传递p、c、a三个参数时,系统会自动跳转到指定模型中指定控制器的指定方法,这些处理过程都是由框架自动完成的。但是,在Laravel框架中,其并没有指定固定参数,其路由必须要手工进行配置。1、路由配置文件路由文件的位置: routes/web.php文件。2、routes\web.php配置文件中配置路由(重点)(1)默原创 2020-08-28 23:50:14 · 1047 阅读 · 0 评论 -
使用composer安装Laravel框架
开发环境配置与要求php.ini配置文件需要开启的扩展:extension=php_openssl.dllextension=php_pdo_mysql.dllextension=php_mbstring.dllhttpd.conf配置文件需要开启的模块:LoadModule deflate_module modules/mod_deflate.soLoadModule rewrite_module modules/mod_rewrite.so安装好PHP后,需要配置环境变量。原创 2020-08-27 23:32:57 · 769 阅读 · 0 评论