awalhadi/addressable

Laravel Eloquent 地址管理库。管理超过一个模型的地址

v1.0.4 2022-12-02 03:55 UTC

This package is auto-updated.

Last update: 2024-09-27 08:22:12 UTC


README

Laravel Addressable 是一个多态的 Laravel 扩展包,用于管理不同类型的地址。您可以使用 Laravel addressable 包将地址添加到任何 eloquent 模型中。希望它能帮助您并使您的生活更轻松。

Latest Version

Software License

Downloads

支持我以获取灵感并保持更新

"Buy Me A Coffee"

安装

  1. 通过 composer 安装此包

    composer require awalhadi/addressable
  2. 执行以下数据库迁移

    php artisan migrate
  3. 公共配置文件

    php artisan vendor:publish --provider="Awalhadi\Addressable\Providers\AddressableServiceProvider" --tag="config"

设置完成

开始使用

如果您想添加地址的模型,只需在您的 eloquent 模型中使用以下 Addressable 特性

use Awalhadi\Addressable\Traits\Addressable;

class ModelName {
    use Addressable;
}

管理您的地址

// Get instance of your model
$user = new \App\Models\User::find(1);

// Create a new address
$user->addresses()->create([
    'label'        => 'Default Address',
    'given_name'   => 'A Awal',
    'family_name'  => 'Hadi',
    'organization' => 'ITclan BD',
    'country_code' => 'bd',
    'street'       => '10 Azompur Uttora',
    'state'        => 'Rajshahi',
    'city'         => 'Natore',
    'postal_code'  => '6400',
    'lat'          => '24.4547889',
    'lng'          => '88.9717818',
    'is_primary'   => true,
    'is_billing'   => true,
    'is_shipping' => true,
]);

// Create multiple new addresses
$user->addresses()->createMany([
    [...],
    [...],
    [...],
]);



// Alternative way of address deletion
$user->addresses()->where('id', 123)->first()->delete();

管理您的可地址模型

API 直观且非常直接,让我们快速了解一下

// Get instance of your model
$user = new \App\Models\User::find(1);

// Get attached addresses collection
$user->addresses;

// Get attached addresses query builder
$user->addresses();


// Find all users within 5 kilometers radius from the lat/lng 31.2467601/29.9020376
$fiveKmAddresses = \App\Models\User::findByDistance('31.2467601', '29.9020376')->get();

$fiveKmAddresses = \App\Models\User::findByDistance('31.2467601', '29.9020376', 5, 'kilometers')->get();

findByDistance 方法除了四个参数外 findByDistance(latitude, longitude, distance=10, unit=kilometers)

更新日志

支持

生成免费二维码

👉 如果您有兴趣成为此包的主要维护者,请 联系我

许可

此软件根据 MIT 许可证 (MIT) 发布。

(c) 2022 awalhadi,版权所有。