galadrim/laravel-addresses

Laravel 5 的简单地址和联系人管理。

dev-main 2022-10-13 09:50 UTC

This package is not auto-updated.

Last update: 2024-09-21 16:36:02 UTC


README

Latest Stable Version Total Downloads License

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);

可用的属性包括 streetcitypost_codestatecountrystatenote(内部使用)、is_primaryis_billing & is_shipping。可选地,您还可以传递 lnglat,如果您禁用了包含的地理编码功能并希望自行添加它们。

检查模型是否有地址
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