neuecommerce / addresses
Addresses是一个多态的Laravel包,用于地址簿管理。向任何Eloquent模型添加地址从未如此简单。
dev-main / 1.0.x-dev
2024-04-01 16:50 UTC
Requires
- php: ^8.3
- illuminate/database: ^11.0
- nesbot/carbon: ^3.0
- neuecommerce/default-records: dev-main
- neuecommerce/model-casts: dev-main
Requires (Dev)
- neuecommerce/coding-standards: dev-main
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2024-08-31 00:33:47 UTC
README
Addresses是一个多态的Laravel包,用于地址簿管理。
向任何Eloquent模型添加地址从未如此简单,地址组织也有多种可能性,因为您可以为每个地址分配一个自定义类型,如shipping
、billing
等。这使得每个地址类型都可以有一个默认地址。例如,可以有一个默认的shipping address
和一个默认的billing address
,这在电子商务应用中非常常见。
安装
- 使用Composer安装包
composer require neuecommerce/addresses
- 发布迁移(可选)
php artisan vendor:publish --tag="neuecommerce-addresses-migrations"
- 发布配置文件(可选)
php artisan vendor:publish --tag="neuecommerce-addresses-config"
- 运行迁移
php artisan migrate
实现
为了向您的Eloquent模型添加地址支持,您需要确保您的模型实现了NeueCommerce\Addresses\Contracts\HasManyAddressesInterface
接口和NeueCommerce\Addresses\Traits\HasManyAddresses
特性。
以下是一个具有正确实现的模型示例
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use NeueCommerce\Addresses\Contracts\HasManyAddressesInterface; use NeueCommerce\Addresses\Traits\HasManyAddresses; class Customer extends Model implements HasManyAddressesInterface { use HasManyAddresses; public $table = 'customers'; }
使用方法
在本节中,您将学习如何使用地址包并管理Eloquent模型中的地址。
为了简单起见,我们将使用一个Customer
实体(我们在上一节中创建的实体)
$customer = Customer::first();
创建新的地址
创建新的地址非常简单。
示例
$address = $customer->addresses()->create([ 'type' => 'shipping', 'display_name' => 'Default Shipping Address', 'first_name' => 'John', 'last_name' => 'Done', 'address_1' => '3327 Colby Ave', 'city' => 'Everett', 'country_code' => 'US', 'state' => 'Washington', 'postal_code' => '98201', 'latitude' => '47.972829', 'longitude' => '-122.20793', 'is_default' => true, ]);
更新现有地址
要更新地址,您需要获取要更新的地址,然后在地址实例上调用update()
方法,并提供更新后的属性。
示例
// Find the address to update $address = $customer->addresses()->whereType('shipping')->whereDefault()->first(); // Update the address $address->update([ 'display_name' => 'Home Shipping Address', ]);
删除地址
要删除地址,您需要获取要删除的地址,然后在地址实例上调用delete()
方法。
示例
// Find the address to delete $address = $customer->addresses()->whereType('shipping')->whereDefault()->first(); // Delete the address $address->delete();
测试
composer test
贡献
感谢您的关注。以下是一些贡献的多种方式。
许可证
本软件包是开源软件,许可证为MIT许可证。