fastadmin 框架 生成qr code 二维码图片,PHP 7.4版本

注意:

1、不同版本,安装qr code 用法不同。PHP8.0以上用qr code 4.0版本, PHP7.4用 qr code3.0版本

2、项目根目录安装:

bash 复制代码
//安装3.0版本
composer require endroid/qr-code:^3.0
bash 复制代码
//检查安装版本
composer show endroid/qr-code
选Y  

3、使用方式:

bash 复制代码
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter; // 使用 PngWriter
use Endroid\QrCode\Writer\JpgWriter;
use Endroid\QrCode\Writer\SvgWriter;

public function index()
{

    $qrCode = new QrCode($OrderList['invoice_no']);  // 使用发票号作为二维码内容
        $qrCode->setSize(300); // 设置二维码的大小
        $qrCode->setMargin(10); // 设置二维码的边距
        $writer = new PngWriter(); // 确保初始化了 PngWriter
        // 定义二维码保存路径
        $qrCodePath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/qrcodes/' . 'order_' . $OrderList['invoice_no'] . '.png';

        // 创建目录(如果目录不存在)
        $dirPath = dirname($qrCodePath); // 获取保存路径的父目录

        if (!is_dir($dirPath)) {
            mkdir($dirPath, 0777, true); // 创建目录并设置权限
        }

         // 保存二维码图片
         $writer->writeFile($qrCode, $qrCodePath); // 保存二维码文件// 保存二维码文件到指定路径
  
          // 更新订单数据,添加二维码图片路径
          $orderData['image'] = '/uploads/qrcodes/' . 'order_' . $OrderList['invoice_no'] . '.png';
 			//更新到数据库指定路径,根据自己逻辑而定
          print_r($orderData);exit;
}

4、如果直接使用,会出现错误,这里修改了一下接口文件代码, 根目录搜索 : AbstractWriter.php 文件

bash 复制代码
//代码第27行左右

    public function writeFile(QrCodeInterface $qrCode, string $path): string
    {
        // 生成二维码字符串(图像内容)
        $string = $this->writeString($qrCode);

        // 将图像内容保存到指定路径
        file_put_contents($path, $string);

        // 返回保存二维码图像的路径 ,新增了返回路径,就没报错了
        return $path;  
    }
相关推荐
minglie11 分钟前
Vitis HLS c转verilog
c语言·开发语言·fpga开发
她和夏天一样热5 分钟前
【实战篇】设计模式在开发中的真实应用
java·开发语言·设计模式
TheSumSt10 分钟前
Python丨课程笔记Part2:方法论进阶部分
开发语言·笔记·python
微爱帮监所写信寄信16 分钟前
微爱帮监狱寄信写信小程序:深入理解JavaScript中的Symbol特性
开发语言·javascript·网络协议·小程序·监狱寄信·微爱帮
ss27324 分钟前
线程池工作机制:从任务提交到执行的完整决策流程
java·开发语言
syt_101332 分钟前
js基础之-如何理解js中一切皆对象的说法
开发语言·javascript·原型模式
yaoxin52112335 分钟前
276. Java Stream API - 使用 flatMap 和 mapMulti 清理数据并转换类型
java·开发语言·windows
lsx2024061 小时前
Chart.js 极地图
开发语言
爱吃山竹的大肚肚1 小时前
在Java中,从List A中找出List B没有的数据(即求差集)
开发语言·windows·python
weixin_462446231 小时前
【原创实践】Python 将 Markdown 文件转换为 Word(docx)完整实现
开发语言·python·word