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 属性中显示。
条形码类型
此包支持以下条形码类型
code128code39code93codabarean13ean8upcupcextisbndatamatrixpdf417qrcodeitf14interleaved2of5postnetmsipharmacodemaxicodeazteccode11code128acode128bcode128ccode39extendedcode39mod43code93extendedgs1_128gs1_128compositegs1_ccgs1datamatrixgs1datamatrixrectangulargs1qrcode
事件
此包包含几个事件,您可以编写如下监听器
贡献
感谢您考虑为 Laravel Barcode 贡献!贡献指南可以在 CONTRIBUTING.md 中找到。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。