fairdigital / laravel-addresses
为Laravel 5提供简单的地址和联系人管理。
此包的规范仓库似乎已丢失,因此该包已被冻结。
v0.2.5
2018-07-05 03:51 UTC
Requires
- php: >=5.6.4|^7.0
- illuminate/database: >=5.3
- illuminate/support: >=5.3
- rinvex/country: ^3.1
Requires (Dev)
- doctrine/dbal: 2.5.x
- laravel/framework: >=5.3
- mockery/mockery: 0.9.*
- phpunit/phpunit: ^6.0
README
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);
可用的属性包括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许可证下许可。
作者
由FairDigital在澳大利亚墨尔本精心制作。