Laravel高级

1、Artisan控制台:
    创建控制器:php artisan make:controller StudentController
    创建模型:php artisan make:model Student
    创建中间件:php artisan make:middleware Activity

2、Laravel的用户认证(Auth)
    php artisan make:auth

3、数据表迁移:
    php artisan migrate
    只创建迁移文件:php artisan make:migration create_students_table 
    --create=students //create_students_table迁移文件、students表名
    创建模型同时创建迁移文件:php artisan make:model Article -m

4、填充测试数据到表中
    创建一个填充文件并完善填充文件
    php artisan make:seeder StudentTableSeeder
    执行单个填充文件
    php artisan db:seed --class=StudentTableSeeder
    批量执行填充文件(要在DatabaseSeeder中注册)
    php artisan db:seed

5、文件上传(config/filesystems.php):

     if($request->isMethod('POST')){
           $file = $request->file('source');
           //文件是否上传成功
           if($file->isValid()){
               //源文件名
               $originalName = $file->getClientOriginalName();
               //扩展名
               $ext = $file->getClientOriginalExtension();
               //MimeType
               $type = $file->getClientMimeType();
               //临时文件绝对路径
               $realPath = $file->getRealPath();
               //生成新文件名
               $fileName = date('Y-m-d-H:i:s').uniqid().'.'.$ext;
               //保存到配置文件设置的驱动磁盘(config/filesystems.php)
               $bool = Storage::disk('uploads')->put($fileName,file_get_contents($realPath));
               var_dump($bool);
           }else{
               var_dump($file->getErrorMessage());
           }

           exit;
       }

6、发送邮件(config/mail.php)
    Mail::raw() :纯文本
    Mail::send() :html格式

    config/mail.php配置:
    'from' => ['address' => 'seven@163.com', 'name' => 'seven'],
    //其他配置读取env下

    env配置:
    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.163.com
    MAIL_PORT=465
    MAIL_USERNAME=seven@163.com
    MAIL_PASSWORD=test123
    MAIL_ENCRYPTION=ssl

    发送纯文本:
    Controller代码如下:
    \Mail::raw('邮件内容 测试',function($message){
           $message->from('seven@163.com','seven');
           $message->subject('邮件主题 测试');
           $message->to('541330576@qq.com');
       });

    发送html:
    1)在resource/views/students下新建mail.blade.php模板,内容如下:
        <h1>Hello {{$name}}</h1>

    2)Controller中代码如下:
         \Mail::send('students.mail',['name'=>'seven'],function($message){
           $message->to('546630576@qq.com');
       });


7、缓存使用(config/cache):
    put()、add()、forever()、has()、get()、pull()、forget()

 7.1 添加缓存
   //添加缓存10min,之前key存在,则会添加失败,返回值bool
   $bool=\Illuminate\Support\Facades\Cache::add('key','val',10);

   //设置缓存10分钟,之前key存在重新更新,key不存在添加,无返回值
   \Illuminate\Support\Facades\Cache::put('key1','val1',10); 

   //永久保存在缓存中    
   \Illuminate\Support\Facades\Cache::forever('key1','val1');    

 7.2 判断缓存key是否存在
    \Illuminate\Support\Facades\Cache::has('key1');  

 7.2 获取缓存
   //单纯获取内容,什么都不做    
   \Illuminate\Support\Facades\Cache::get('key1');
   //取出来之后,并删除该缓存
   \Illuminate\Support\Facades\Cache::pull('key1');

 7.3 删除缓存
   $bool = \Illuminate\Support\Facades\Cache::forget('key1');


8、laravel中错误与日志(config/app.php)
    8.1 APP_DEBUG :本地开发APP_DEBUG环境变量为true,线上永远为false
    8.2 HTTP异常(404,401,50x):
        abort('401')//就会跳转到resource/view/errors/401.blade.php,并显示错误
        abort('503')//就会跳转到resource/view/errors/503.blade.php,并显示错误
【注意】:如果是404不存在,不需要abort,直接创建resource/view/errors/403.blade.php页面,
如果访问不存在的路由,会自动跳转到这个404
    8.3 日志log:
        env配置:
        APP_LOG=single //"single", "daily", "syslog", "errorlog"
        ( single:所有日志都永久写到这一个日志文件中
           daily:根据日期,每天生成一个日志文件
           syslog:
        )
        APP_LOG_LEVEL=debug

        代码中记录日志7中错误级别,这里只写了4中:
           Log::info('info',['name'=>'seven','age'=>18]);
           Log::warning('warning',['name'=>'seven','age'=>18]);
           Log::error('error',['name'=>'seven','age'=>18]);
           Log::debug('debug',['name'=>'seven','age'=>18]);
        【注】:可以传递数组,lavalel日志中将会序列化成json方便查看


9、Queue队列(config/queue.php)
      env配置:
      QUEUE_DRIVER=database //database、redis、sync等

      9.1 先创建记录对列表
          php artisan queue:table //记录未执行的队列任务,
          //执行成功就删除,失败了就到failed-table中
          php artisan queue:failed-table //记录失败的队列任务
          php artisan migrate
      9.2 创建一个发送邮件队列任务    
          php artisan make:job SendEmail
          //创建成功后就在app/Jobs/SendEmail.php中
      9.3 编辑app/Jobs/SendEmail.php任务
            private $email;
            public function __construct($email){
                $this->email = $email;
            }
            public function handle(){
                Log::info('发送邮件成功,email为',$this->email);
            }
      9.3 命令行监听队列:php artisan queue:listen
      9.4 控制器加入队列:
          dispatch(new SendEmail('546630576@qq.com'));
      9.5 查看失败的队列任务:
          php artisan queue:failed
      9.6 重新执行失败队列中的任务:
          php artisan queue:retry 10 //只执行ID为10的那个任务
          php artisan queue:retry all //执行所有失败的任务
      9.7 删除队列任务:
          php artisan queue:forget 4 //删除ID为4的那个失败任务
          php artisan queue:flush //删除所有失败的任务



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值