fairdigital/laravel-addresses

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

此包的规范仓库似乎已丢失,因此该包已被冻结。

v0.2.5 2018-07-05 03:51 UTC

This package is not auto-updated.

Last update: 2022-07-14 21:46:02 UTC


README

Latest Stable Version Total Downloads License

Laravel Addresses

为Laravel 5提供带有自动地理编码以添加经纬度的简单地址和联系人管理。使用Webpatser的著名Countries包。

重要通知

此包正在开发中,请谨慎使用,并随时报告您可能遇到的问题或想法!

安装

从您的composer.json文件中要求该包

"require": {
	"fairdigital/laravel-addresses": "dev-master"
}

并运行$ composer update或两者一起使用$ composer require fairdigital/laravel-addresses

然后,如果Laravel版本小于5.5,请将以下服务提供者注册到您的config/app.php文件中

'providers' => [
    // Illuminate Providers ...
    // App Providers ...
    FairDigital\Addresses\AddressesServiceProvider::class,

];

配置 & 迁移

$ php artisan vendor:publish --provider="FairDigital\Addresses\AddressesServiceProvider"

这将创建一个config/addresses.php和迁移文件,您将需要像这样运行它们

$ php artisan countries:migration
$ php artisan migrate

用法

首先,将我们的HasAddresses特质添加到您的模型中。

<?php namespace App\Models;

use FairDigital\Addresses\Traits\HasAddresses;

class Post extends Model
{
    use HasAddresses;

    // ...
}
?>
向模型添加地址
$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_billingis_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许可证下许可。

作者

FairDigital在澳大利亚墨尔本精心制作。