jobmetric/laravel-barcode

这是一个为Laravel设计的条码管理包,您可以在您的项目中使用。

1.4.1 2024-06-16 22:56 UTC

This package is auto-updated.

Last update: 2024-09-22 19:36:55 UTC


README

Contributors Forks Stargazers MIT License LinkedIn

laravel条码

这是一个为Laravel设计的条码管理包,您可以在您的项目中使用。

通过composer安装

运行以下命令以拉取最新版本

composer require jobmetric/laravel-barcode

文档

该包正在不断改进,每天都会集成一系列不同的功能。它是Laravel爱好者不可或缺的资产,提供了一个无缝的方式将条码数据库模型与项目相结合。

在这个包中,您可以使用它无缝地与任何需要数据库条码的模型一起使用。

现在,让我们深入了解核心功能。

在开始任何操作之前,您必须使用composer安装包后进行迁移。

php artisan migrate

了解HasBarcode类,精心设计以集成到您的模型中。该类自动化基本任务,确保流程流畅。

在第一步中,您需要将此类连接到您的主模型。

use JobMetric\Barcode\HasBarcode;

class Product extends Model
{
    use HasBarcode;
}

如何使用它?

存储条码

您现在可以使用HasBarcode类为您的模型存储条码。以下示例展示了如何通过保存条码创建新产品

$product = new Product();
$product->name = 'Product 1';
$product->save();

$product->storeBarcode('ean13', '1234567890123');

在这个示例中,我们创建了一个新产品并将其保存到数据库中。然后,我们使用storeBarcode方法为产品存储条码。第一个参数是条码类型,第二个参数是条码值。

检索条码

您可以使用getBarcode方法检索模型的条码。以下示例展示了如何检索产品的条码

$product = Product::find(1);
$barcode = $product->getBarcode('ean13');

在这个示例中,我们从数据库中检索了一个产品,然后使用getBarcode方法检索了产品的条码。参数是条码类型。

删除条码

您可以使用deleteBarcode方法删除模型的条码。以下示例展示了如何删除产品的条码

$product = Product::find(1);
$product->forgetBarcode('ean13');

在这个示例中,我们从数据库中检索了一个产品,然后使用forgetBarcode方法删除了产品的条码。参数是条码类型。

删除所有条码

您可以使用deleteAllBarcodes方法删除模型的全部条码。以下示例展示了如何删除产品的所有条码

$product = Product::find(1);
$product->forgetAllBarcodes();

在这个示例中,我们从数据库中检索了一个产品,然后使用forgetAllBarcodes方法删除了产品的所有条码。

检查条码是否存在

您可以使用hasBarcode方法检查模型是否存在条码。以下示例展示了如何检查产品是否存在条码

$product = Product::find(1);
$exists = $product->hasBarcode('ean13');

在这个示例中,我们从数据库中检索了一个产品,然后使用hasBarcode方法检查了产品是否存在条码。参数是条码类型。

更新条码

您可以使用storeBarcode方法更新模型的条码。以下示例展示了如何更新产品的条码

$product = Product::find(1);
$product->storeBarcode('ean13', '1234567890124');

在这个示例中,我们从数据库中检索了一个产品,然后使用storeBarcode方法更新了产品的条码。第一个参数是条码类型,第二个参数是新的条码值。

在Resource中添加可条码化属性

在条形码资源中,有一个名为 bacodeable 的字段可以显示您的模型,但必须按照以下设置。

首先,为要在条形码资源中显示的模型创建一个监听器。

php artisan make:listener AddProductResourceToBarcodableResourceListener

然后,将以下代码添加到监听器中。

use JobMetric\Barcode\Events\BarcodeableResourceEvent;

class AddProductResourceToBarcodableResourceListener
{
    public function handle(BarcodeableResourceEvent $event)
    {
        $barcodeable = $event->barcodeable;

        if ($barcodeable instanceof \App\Models\Product) {
            $event->resource = new \App\Http\Resources\ProductResource($barcodeable);
        }
    }
}

最后,将监听器添加到 EventServiceProvider 类中。

protected $listen = [
    \JobMetric\Barcode\Events\BarcodeableResourceEvent::class => [
        \App\Listeners\AddProductResourceToBarcodableResourceListener::class,
    ],
];

工作已完成,现在当调用 BarcodeResource 时,如果应该返回 ProductResource,则该资源的详细信息将在 bacodeable 属性中显示。

条形码类型

此包支持以下条形码类型

  • code128
  • code39
  • code93
  • codabar
  • ean13
  • ean8
  • upc
  • upcext
  • isbn
  • datamatrix
  • pdf417
  • qrcode
  • itf14
  • interleaved2of5
  • postnet
  • msi
  • pharmacode
  • maxicode
  • aztec
  • code11
  • code128a
  • code128b
  • code128c
  • code39extended
  • code39mod43
  • code93extended
  • gs1_128
  • gs1_128composite
  • gs1_cc
  • gs1datamatrix
  • gs1datamatrixrectangular
  • gs1qrcode

事件

此包包含几个事件,您可以编写如下监听器

贡献

感谢您考虑为 Laravel Barcode 贡献!贡献指南可以在 CONTRIBUTING.md 中找到。

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件