为了账号安全,请及时绑定邮箱和手机立即绑定

轻松学会Laravel-高级篇

难度高级
时长 1小时42分
学习人数
综合评分9.70
59人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.6 逻辑清晰
  • 介绍:

    laravel队列服务为各种不同的后台队列提供了统一的API

    允许推迟耗时任务(例如邮件发送)的执行,从而大幅提高web请求速度

    主要步骤:

    1、迁移队列需要的数据表

    2、编写任务类

    3、推送任务到队列

    4、运行队列监听

    5、处理失败任务

    配置文件在config/queue.php

    修改.env文件QUEUE_DRIVER=database  改为数据库驱动

    1、生成迁移队列需要的数据表

      php artisan queue:table (创建了迁移文件job,而且里面已经有了表的结构)

      php artisan migrate  (生成了jobs)

    2、编写任务类(样例是要做个邮件发送任务)

      php artisan make:job SendEmail (在app文件夹下生成了Jobs文件夹,里面有SendEmail.php文件)

    这样一个任务类就写完了

    <!--此处有图片-->


    <!--此处有图片-->

    3、推送任务到队列中

    一调用这个queue()这个方法,数据库jobs表就多了一条记录,这个记录就是我们的任务,也就是所谓的队列

    我们已经把任务推送到队列中了,但是还没有执行

    <!--此处有图片-->

    4、运行队列监听器

    php artisan queue:listen

    (报错了,其实没问题,只是测试多了163邮箱给屏蔽了,于是改了SendEmail.php文件)

    再次访问了控制器,就是重新推送一个任务大到队列中

    日志文件中也多了一条记录。这样队列就已经成功了

    5、处理失败任务

    任务执行失败会保存到一个表,但是那个表还没有创建,这个表在php artisan list的queue下面可以看到

    php artisan queue:failed-table

    php artisan migrate

    php artisan queue:failed 查看执行错误的队列

    php artisan queue:retry 1  重新执行失败的队列,try后面跟的是id

    php artisan queue:retry all 重新执行所有的错误队列

    错误的队列再次执行在failed_jobs表里id会变(应该是自增)

    查看执行错误的队列php artisan queue:failed  (也可以在数据库查看)

    php artisan queue:forget 4 删除那条记录

    php artisan queue:flush 删除所有的错误记录

    <!--此处有图片-->


  • Debug模式  HTTP异常  日志

    Debug模式

        配置:config.php

        进行本地开发时,应该配置APP_DEUG环境变量为true,在上线环境,这个值应该永远为false

     看debug模式是否开启,config.app.php 里面的debug方法,结果还是到.env文件下看app_debug=true;关闭改为false

    HTTP异常:就是给resources/views/errors下面添加比如403.blade.php这样和错误对应的模板

    日志:

    <!--此处有图片-->在 .env文件添加APP_LOG=single

    <!--此处有图片-->

    就运行了一下这三个函数,日志文件在storage/logs文件夹下。如果改为daily,那么日志每天生成一个,文件名包含当天日期

    <!--此处有图片-->

  • 就是将几个缓存常用函数运行看了一下,默认的是文件缓存,在storage/framework/cache下

    添加缓存: put() add()  有返回值bool   forever()

    获取缓存:get() pull()获取了会删掉

    删除缓存:forget()



  • 需要修改配置文件:config/mail.php和.env文件

    <!--此处有图片--><!--此处有图片--><!--此处有图片-->

  • 配置 config/filesystem.php  (在控制器里面的系统函数不用死记硬背,有提示的)

    <!--此处有图片-->


    <!--此处有图片-->

    <!--此处有图片-->$bool = Storage::disk('uploads')->put($file,$file_get_contents($realPath))

    <!--此处有图片-->

  • php artisan make:seed UserTableSeeder

    在app/database/seeds/StudentTableSeeder.php

    的run()方法中添加DB::table("Student")->insert([......数据]);

    ①执行数据填充php artisan db:seed --class StudentTableSeeder

    或者②在DatabaseSeeder.php的run方法里面添加 $this->call(StudentTableSeeder::class);

    然后执行php artisan db:seed

  • php  artisan (list) 查看用法列表

     php artisan  make:{type}  {name} 创建类文件

     php artisan  make:auth     创建登录注册 

    php artisan  migrate        生成用户表

  • 包管理器

    Java Maven

    NodeJS NPM

    PHP Pear

  • php artisan make:controller StudnetController


  • 执行 php artisan migrate 命令时出现:

    QLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max

    key length is 1000 bytes...错误

    解决办法:在app/Providers/AppServiceProvider中的public function boot()方法添加

    Schema::defaultStringLength(191);

    即可


  • Laravel执行seeder命令出现 Class StudentTableSeeder does not exist.

    解决办法:在控制台中执行`composer dump-autoload`,然后再执行`php artisan db:seed`命令.


  • Phpstudy运行Laravel5.8项目 报500错误 。最后查看日志是:No application encryption key has been specified。查看目录文件后发现少了.env和.env.example文件。于是拷贝了Laravel5.6的这两个文件,问题完美解决。



  • form表单需要加上:enctype="multipart/form-data"属性

    05:34
    看视频

举报

0/150
提交
取消
课程须知
1、掌握《基础篇》和《表单篇》的知识 2、掌握基本的HTML相关知识 3、熟悉PHP语言,了解面向对象、命名空间、Traits等特性 4、熟悉关系型数据库Mysql,了解数据库的表、记录、列等概念。
老师告诉你能学到什么?
1、安装和使用Composer 2、使用Composer安装和管理Laravel的依赖包 3、掌握Laravel中的用户认证(Auth)、数据迁移和数据填充的使用 4、掌握文件上传、邮件、缓存、错误&日志和队列的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!