jobmetric / laravel-barcode
这是一个为Laravel设计的条码管理包,您可以在您的项目中使用。
Requires
- php: >=8.0.1
- jobmetric/laravel-package-core: ^1.7
- laravel/framework: >=9.19
README
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)。有关更多信息,请参阅 许可证文件。