galadrim / laravel-addresses
Laravel 5 的简单地址和联系人管理。
dev-main
2022-10-13 09:50 UTC
Requires
- php: >=5.5.9
- doctrine/dbal: 2.5.x
- illuminate/database: >=5.1
- illuminate/support: >=5.1
- webpatser/laravel-countries: 1.4.*
Requires (Dev)
- mockery/mockery: 0.9.*
This package is not auto-updated.
Last update: 2024-09-21 16:36:02 UTC
README
Laravel Addresses
为 Laravel 5 提供简单地址和联系人管理,并自动进行地理编码以添加经纬度。使用 Webpatser 的著名Countries 包。
安装
从您的 composer.json
文件中添加包
"require": { "vendocrat/laravel-addresses": "dev-master" }
并运行 $ composer update
或两者同时运行 $ composer require vendocrat/laravel-addresses
。
接下来,将以下服务提供者和外观注册到您的 config/app.php
文件中
'providers' => [ // Illuminate Providers ... // App Providers ... vendocrat\Addresses\AddressesServiceProvider::class, Webpatser\Countries\CountriesServiceProvider::class, ];
'providers' => [ // Illuminate Facades ... 'Address' => vendocrat\Addresses\Facades\Addresses::class, 'Countries' => Webpatser\Countries\CountriesFacade::class, ];
配置和迁移
$ php artisan vendor:publish $ php artisan countries:migration
这将创建 config/addresses.php
和迁移文件。在配置文件中,您可以自定义表名,最后您将需要像这样运行迁移
$ php artisan migrate
查看 Webpatser\Countries 的 README 文件,了解如何将其国家数据种子到您的数据库中。
使用方法
将地址添加到模型中
$post = Post::find(1); $post->addAddress([ 'street' => '123 Example Drive', 'city' => 'Vienna', 'post_code' => '1110', 'country' => 'AT', // ISO-3166-2 or ISO-3166-3 country code 'is_primary' => true, // optional flag ]);
或者您可以这样做...
$address = [ 'street' => '123 Example Drive', 'city' => 'Vienna', 'post_code' => '1110', 'country' => 'AT', // ISO-3166-2 or ISO-3166-3 country code 'is_primary' => true, // optional flag ]; $post->addAddress($address);
可用的属性包括 street
、city
、post_code
、state
、country
、state
、note
(内部使用)、is_primary
、is_billing
& is_shipping
。可选地,您还可以传递 lng
和 lat
,如果您禁用了包含的地理编码功能并希望自行添加它们。
检查模型是否有地址
if ( $post->hasAddress() ) { // Do something }
获取模型的全部地址
$addresses = $post->addresses()->get();
获取主要/账单/配送地址
$address = $post->getPrimaryAddress(); $address = $post->getBillingAddress(); $address = $post->getShippingAddress();
更新模型的地址
$address = $post->addresses()->first(); // fetch the address $post->updateAddress($address, $new_attributes);
从模型中删除地址
$address = $post->addresses()->first(); // fetch the address $post->deleteAddress($address); // delete by passing it as argument
从模型中删除所有地址
$post->flushAddresses();
许可证
在MIT 许可证下许可。
作者
由 Alexander Manfred Poellmann 在维也纳和罗马为 vendocrat 精心制作。# laravel-addresses