soap/thai-addresses

Laravel 应用程序的泰国省份数据库

v3.1.1 2024-04-24 07:52 UTC

README

Latest Version on Packagist run-tests Check & fix styling Total Downloads

此包提供了基本的泰国省份数据库,包括区和次区。还提供了可与之一起使用的可寻址模型。

版本支持

支持我们

我们非常感谢您从家乡寄给我们明信片,并提及您正在使用哪些我们的包。您可以在我们的联系页面找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上

要求

肥皂/thai-addresses v2.x 对于 Laravel 9 和 PHP 8.0 或 8.1。如果您使用 Laravel 8,请参阅版本 1.x

安装

您可以通过 composer 安装此包

composer require soap/thai-addresses

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="thai-addresses-config"

这是发布配置文件的内容

return [
    // model definition
    "geography" => [
        "table_name" => "thai_geographies",
        "foreign_key" => "geography_id"
    ],

    "province" => [
        "table_name" => "thai_provinces",
        "foreign_key" => "province_id"
    ],
    
    "district" => [
        "table_name" => "districts",
        "foreign_key" => "district_id"
    ],

    "subdistrict" => [
        "table_name" => "subdistricts",
    ],

    "address" => [
        "table_name" => "addresses",
         "model" => \Soap\ThaiAddresses\Models\Address::class
    ]
];

您可以在配置文件中更改所有模型的表名。

然后,您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="thai-addresses-migrations"
php artisan migrate

可选地,您可以使用安装命令安装配置和迁移文件。

php artisan thai-addresses:install

使用

如果您只想使用省份、区和次区数据,只需运行数据库播种即可。

php artisan thai-addresses:db-seed

这将安装所有泰国地址数据到数据库中,如 thai-addresses.conf 文件中配置的那样。

管理您的地址

要为您的 eloquent 模型添加地址支持,只需使用 \Soap\ThaiAddresses\Traits\HasAddress 特性。此包提供多态地址模型。通过使用此功能,任何模型都可以拥有地址。

在您的 App\Models\User.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Soap\ThaiAddresses\Tests\Database\Factories\UserFactory;
use Soap\ThaiAddresses\Traits\HasAddress;

class User extends Authenticatable
{
    use HasFactory;
    use HasAddress;

    protected $guarded = [];

    protected $fillable = [
        'name',
        'email',
    ];

}

然后您的用户可以有地址了!

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

// Create a new address
$user->addresses()->create([
    'label' => 'Default Address',
    'given_name' => 'Prasit',
    'family_name' => 'Gebsaap',
    'organization' => 'KPS Academy',
    'street' => '1/8 Watchara road',
    'subdistrict_id' => Subdistrict::where('name_th','=','กระบี่ใหญ่')->first()->id,
    'latitude' => '31.2467601',
    'longitude' => '29.9020376',
    'is_primary' => true,
    'is_billing' => true,
    'is_shipping' => true,
]);

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

// Find an existing address
$address = app('thai-addresses.address.model')->find(1);

// Update an existing address
$address->update([
    'label' => 'Default Work Address',
]);

// Delete address
$address->delete();

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

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅我们的安全策略

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅许可文件