maggomann / addressable
此Laravel包提供了一个最小化的特性Addressable,用于通过这些地址添加eloquent模型。
v0.2.2
2023-05-20 20:26 UTC
Requires
- php: ^8.1
- dcblogdev/laravel-countries: ^2.0
- illuminate/contracts: ^9.0
- spatie/laravel-data: ^2.2
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- laravel/laravel: ^9.3
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.19
- pestphp/pest: ^1.22
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- sethphat/eloquent-docs: ^1.1
This package is not auto-updated.
Last update: 2024-09-26 23:27:48 UTC
README
addressable
此包提供了一个最小化的特性Addressable,用于通过这些地址为laravel添加eloquent模型。该包将在以后扩展。在我开始使用这个在不同项目中修改过的类之前,它被直接作为一个包外包出。
安装
您可以通过composer安装此包
composer require maggomann/addressable
您可以使用以下命令安装任何东西
php artisan addressable:install php artisan migrate
或者
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="addressable-migrations"
php artisan migrate
可选地,您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="addressable-config"
可选地,您可以使用以下命令发布翻译文件
php artisan vendor:publish --tag="addressable-translations"
如何使用它?
use Illuminate\Database\Eloquent\Model; use Maggomann\Addressable\Traits\Addressable; class Player extends Models { use Addressable; } //... //... $exampleAttributes = [ 'first_name' => 'first name', 'last_name' => 'last name', 'name' => 'name', 'street_address' => 'street address', 'street_addition' => 'street addition', 'postal_code' => 'postal code', 'city' => 'city', 'country_code' => 'de', 'state' => null, 'company' => null, 'job_title' => null, 'is_preferred' => true, 'is_main' => true, ]; $address = new Address(); $address->fill($exampleAttributes); $address->withCategory($categoryIdOrCategoryClass); $address->withGender($genderIdOrGenderClass); Player::query() ->findOrFail(1) ->address() ->save($address);
use Illuminate\Database\Eloquent\Model; use Maggomann\Addressable\Traits\Addressable; class Player extends Models { use Addressable; } //... //... $exampleAttributes = [ 'first_name' => 'first name', 'last_name' => 'last name', 'name' => 'name', 'street_address' => 'street address', 'street_addition' => 'street addition', 'postal_code' => 'postal code', 'city' => 'city', 'country_code' => 'de', 'state' => null, 'company' => null, 'job_title' => null, 'is_preferred' => true, 'is_main' => true, ]; $addressOne = new Address(); $addressOne->fill($exampleAttributes); $addressOne->withCategory($categoryIdOrCategoryClass); $addressOne->withGender($genderIdOrGenderClass); $addressTwo = new Address(); $addressTwo->fill($exampleAttributes); $addressTwo->withCategory($categoryIdOrCategoryClass); $addressTwo->withGender($genderIdOrGenderClass); $player = Player::query()->findOrFail(1); $player->addresses()->save($addressOne); $player->addresses()->save($addressTwo); // or $player->addresses()->saveMany( collect([ $addressOne, $addressTwo, ]) );
use Illuminate\Database\Eloquent\Model; use Maggomann\Addressable\Domain\Actions\UpdateOrCreateAddressAction; use Maggomann\Addressable\Traits\Addressable; class Player extends Models { use Addressable; } //... //... $exampleAttributes = [ 'first_name' => 'first name', 'last_name' => 'last name', 'name' => 'name', 'street_address' => 'street address', 'street_addition' => 'street addition', 'postal_code' => 'postal code', 'city' => 'city', 'country_code' => 'de', 'state' => null, 'company' => null, 'job_title' => null, 'is_preferred' => true, 'is_main' => true, ]; $newAddress = app(UpdateOrCreateAddressAction::class)->execute( $player, AddressData::from($exampleAttributes) ); // or $updatedAddress = app(UpdateOrCreateAddressAction::class)->execute( $player, AddressData::from($exampleAttributes) $player->addresses()->first() );
地址表目前包含以下属性
'attributes' => [ 'addresses' => [ 'category_id' => 'address type', 'gender_id' => 'salutation', 'first_name' => 'first name', 'last_name' => 'last name', 'name' => 'first_name', 'last_name' => 'last_name', 'street_address' => 'streets and no.', 'street_addition' => 'street addition', 'postal_code' => 'postal code', 'city' => 'city', 'country_code' => 'country', 'state' => 'federal state', 'company' => 'company', 'job_title' => 'job title', 'is_preferred' => 'prefer', 'is_main' => 'is main address', 'latitude' => 'latitude', 'longitude' => 'longitude', ], ],
预装问候语
默认情况下,它们位于以下表中:address_genders
'address_genders' => [ 'title' => [ 'male' => 'Mr.', 'female' => 'Ms.', 'diverse' => 'Various', ], ],
预装分类
默认情况下,它们位于以下表中:address_categories
'address_categories' => [ 'title' => [ 'standard' => 'Default address', 'billing' => 'Billing addres', 'shipping' => 'Delivery address', ], ],
测试
composer test
composer test:pest-coverage
更新日志
请参阅更新日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请参阅我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。