TP6使用think-qrcode的show()方法无法正常显示问题

TP6使用think-qrcode的show()方法无法正常显示问题

在进行项目开发的时候遇到了要生成二维码的问题,因为二维码需求比较简单,所以在综合一些第三方库的情况下选择了think-qrcode,这是一款针对ThinkPHP5的二维码生成 SDK,但是在TinkPHP6同样适用。

一、执行命令安装

composer require dh2y/think-qrcode

安装完成后显示下面内容
在这里插入图片描述

二、在控制台中使用

<?php


namespace app\controller;

use dh2y\qrcode\QRcode;
use app\BaseController;
use think\facade\Config;

class Qr extends BaseController
{
    public function index()
    {
        $code = new QRcode();
        $res = $code->png('测试',false, 6)->logo(app()->getRootPath() . 'public/static/logo.jpeg')->entry();
        return $res;
    }

}

在这里插入图片描述

可以在“项目名/upload/qrcode/”下找到生成的二维码
在这里插入图片描述

三、自定义生成目录

根据提供的README.md文档,需要在config下新建一个qrcode文件

在这里插入图片描述

并配置如下

<?php

// +----------------------------------------------------------------------
// | 二维码设置
// +----------------------------------------------------------------------

return [
    'cache_dir' =>'public/storage/qrcode',           //缓存地址
//    'background'=> app()->getRootPath() . 'public/static/logo.png'    //背景图
];

此处注意,要修改一些配置内容,找到QRcode文件,将“ Config::get(‘qrcode.’);”改为“Config::get(‘qrcode’);”删除“.”,否则无法读取qrcode配置文件中的内容

在这里插入图片描述

此时再执行控制器方法即可实现自定义路径

在这里插入图片描述

四、show()方法遇到的问题

此时当使用show()方法时,页面无法正常显示

<?php


namespace app\controller;

use dh2y\qrcode\QRcode;
use app\BaseController;
use think\facade\Config;

class Qr extends BaseController
{
    public function index()
    {
        $code = new QRcode();
        $res = $code->png('测试',false, 6)->logo(app()->getRootPath() . 'public/static/logo.jpeg')->show();
        return $res;
    }

}

在这里插入图片描述

打开QRcode文件文件查看show()方法

    /**
     * 显示二维码
     */
    public function show(){
        $url = Request::instance()->domain().'/'.$this->outfile;
        exit('<img src="'.$url.'"/>');
    }

点击F12查看文件路径

在这里插入图片描述

在thinkphp6中读取public下的内容时默认隐藏public字段,因此删除“/public”对show()方法做如下修改

 /**
     * 显示二维码
     */
    public function show(){
        $url = Request::instance()->domain().'/'.ltrim($this->outfile,'/public');
        exit('<img src="'.$url.'"/>');
    }

修改后再进行访问,即可正常显示

在这里插入图片描述

问题完美解决!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值