承接 baraear/laravel-thailand 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

baraear/laravel-thailand

最新稳定版本:v1.0.0

Composer 安装命令:

composer require baraear/laravel-thailand

包简介

The package may help Laravel developer store user address by easily way

README 文档

README

แพคเกจตำบล, อำเภอ, จังหวัด และรหัสไปรษณีย์สำหรับ Laravel Framework

Latest Stable Version Build Status StyleCI Scrutinizer Code Quality Total Downloads GitHub license

แพคเกจนี้จะช่วยให้นักพัฒนาที่ใช้ Laravel Framework ในการพัฒนาสามารถจัดเก็บข้อมูลที่อยู่ได้ง่ายขึ้น

การติดตั้ง

  1. ติดตั้งแพคเกจ baraear/laravel-thailand ผ่านทาง Composer
    composer require baraear/laravel-thailand
  2. ทำการเพิ่ม Service Provider ของแพคเกจใน config/app.php
    /*
     * Package Service Providers...
     */
    Baraear\ThaiAddress\ThaiAddressServiceProvider::class,
  3. ประกาศใช้งานไฟล์ config ของแพคเกจ
    php artisan vendor:publish --provider="Baraear\ThaiAddress\ThaiAddressServiceProvider" --tag="config"
  4. ประกาศใช้งานไฟล์ migration ของแพคเกจ
    php artisan vendor:publish --provider="Baraear\ThaiAddress\ThaiAddressServiceProvider" --tag="migrations"
    php artisan migrate
  5. ประกาศใช้งานไฟล์ seeds ของแพคเกจ
    php artisan vendor:publish --provider="Baraear\ThaiAddress\ThaiAddressServiceProvider" --tag="seeds"
    composer dump-autoload
  6. เพิ่มข้อมูลตำบล, อำเภอ, จังหวัด และรหัสไปรษณีย์ลงฐานข้อมูล แก้ไขไฟล์ database/seeds/DatabaseSeeder.php ดังนี้
    <?php
    
    use Illuminate\Database\Seeder;
    
    class DatabaseSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
             $this->call(ThaiAddressTablesSeeder::class);
        }
    }
    php artisan db:seed

การใช้งาน

หลังจากทำการเพิ่มข้อมูลแล้วโดยปกติผู้ใช้สามารถใช้งานผ่านทาง Models ที่ทางแพคเกจจัดทำไว้ให้ได้เลย ซึ่งมีดังต่อไปนี้ SubDistrict, District, Province และ PostalCode

ตำบล
// ข้อมูลทุกตำบล
$sub_districts = SubDistrict::all();

foreach ($sub_districts as $sub_district) {
    // แสดงข้อมูลตำบล
    print_r($sub_district);
    
    // แสดงข้อมูลอำเภอที่มีความสัมพันธ์กับตำบลนี้
    print_r($sub_district->district);
    
    // แสดงข้อมูลรหัสไปรษณีย์ที่มีความสัมพันธ์กับตำบลนี้
    print_r($sub_district->postal_code);
}
อำเภอ
// ข้อมูลทุกอำเภอ
$districts = District::all();

foreach ($districts as $district) {
    // แสดงข้อมูลอำเภอ
    print_r($district);
    
    // แสดงข้อมูลตำบลที่มีความสัมพันธ์กับอำเภอนี้
    print_r($district->sub_districts);
    
    // แสดงข้อมูลจังหวัดที่มีความสัมพันธ์กับอำเภอนี้
    print_r($district->province);
    
    // แสดงข้อมูลรหัสไปรษณีย์ที่มีความสัมพันธ์กับอำเภอนี้
    print_r($district->postal_codes);
}
จังหวัด
// ข้อมูลทุกจังหวัด
$provinces = Province::all();

foreach ($provinces as $province) {
    // แสดงข้อมูลจังหวัด
    print_r($province);
    
    // แสดงข้อมูลอำเภอที่มีความสัมพันธ์กับจังหวัดนี้
    print_r($province->districts);
    
    // แสดงข้อมูลรหัสไปรษณีย์ที่มีความสัมพันธ์กับจังหวัดนี้
    print_r($province->postal_codes);
}
รหัสไปรษณีย์
// ข้อมูลรหัสไปรษณีย์ทั้งหมด
$postal_codes = PostalCode::all();

foreach ($postal_codes as $postal_code) {
    // แสดงข้อมูลรหัสไปรษณีย์
    print_r($postal_code);
    
    // แสดงข้อมูลตำบลที่มีความสัมพันธ์กับรหัสไปรษณีย์นี้
    print_r($postal_code->sub_district);
    
    // แสดงข้อมูลอำเภอที่มีความสัมพันธ์กับรหัสไปรษณีย์นี้
    print_r($postal_code->district);
    
    // แสดงข้อมูลจังหวัดที่มีความสัมพันธ์กับรหัสไปรษณีย์นี้
    print_r($postal_code->province);
}

ซึ่งหากผู้ใช้ไม่ต้องการใช้งานผ่าน Models ที่แพคเกจจัดทำไว้ผู้ใช้สามารถสร้าง Model ใหม่โดยจำเป็นต้องทำการ implements ด้วย Contract ที่ทางแพคเกจเตรียมไว้ให้และจำเป็นต้องแก้ไข models ในไฟล์ config/thai_address.php ให้ตรงกันด้วย

<?php

namespace App;

use Baraear\ThaiAddress\Contracts\SubDistrict as SubDistrictContract;
use Illuminate\Database\Eloquent\Model;

class SubDistrict extends Model implements SubDistrictContract
{
    //
}
<?php

namespace App;

use Baraear\ThaiAddress\Contracts\District as DistrictContract;
use Illuminate\Database\Eloquent\Model;

class District extends Model implements DistrictContract
{
    //
}
<?php

namespace App;

use Baraear\ThaiAddress\Contracts\Province as ProvinceContract;
use Illuminate\Database\Eloquent\Model;

class Province extends Model implements ProvinceContract
{
    //
}
<?php

namespace App;

use Baraear\ThaiAddress\Contracts\PostalCode as PostalCodeContract;
use Illuminate\Database\Eloquent\Model;

class PostalCode extends Model implements PostalCodeContract
{
    //
}

เมื่อสร้าง Models เองอย่าลืมแก้ไข config

<?php

return [

    'models' => [
        'sub_district' => Baraear\ThaiAddress\Models\SubDistrict::class,
        'district' => Baraear\ThaiAddress\Models\District::class,
        'province' => Baraear\ThaiAddress\Models\Province::class,
        'postal_code' => Baraear\ThaiAddress\Models\PostalCode::class,
    ],

    'table_names' => [
        'sub_district' => 'sub_districts',
        'district' => 'districts',
        'province' => 'provinces',
        'postal_code' => 'postal_codes',
    ],

];

นอกจากนี้แพคเกจยังเตรียมการใช้งาน API ไว้ให้ใช้งานสำหรับท่านที่ใช้ Vue.js และ axios

+--------+----------+----------------------------------+---------------------+--------------------------------------------------------------------------+--------------+
| Domain | Method   | URI                              | Name                | Action                                                                   | Middleware   |
+--------+----------+----------------------------------+---------------------+--------------------------------------------------------------------------+--------------+
|        | GET|HEAD | api/district/all                 | district.all        | Baraear\ThaiAddress\Controllers\ThaiAddressController@getAllDistricts    | api          |
|        | GET|HEAD | api/district/search/{query}      | district.search     | Baraear\ThaiAddress\Controllers\ThaiAddressController@searchDistrict     | api          |
|        | GET|HEAD | api/district/{id}                | district.get        | Baraear\ThaiAddress\Controllers\ThaiAddressController@getDistrict        | api          |
|        | GET|HEAD | api/postal-code/all              | postal-code.all     | Baraear\ThaiAddress\Controllers\ThaiAddressController@getAllPostalCodes  | api          |
|        | GET|HEAD | api/postal-code/search/{query}   | postal-code.search  | Baraear\ThaiAddress\Controllers\ThaiAddressController@searchPostalCode   | api          |
|        | GET|HEAD | api/postal-code/{id}             | postal-code.get     | Baraear\ThaiAddress\Controllers\ThaiAddressController@getPostalCode      | api          |
|        | GET|HEAD | api/province/all                 | province.all        | Baraear\ThaiAddress\Controllers\ThaiAddressController@getAllProvinces    | api          |
|        | GET|HEAD | api/province/search/{query}      | province.search     | Baraear\ThaiAddress\Controllers\ThaiAddressController@searchProvince     | api          |
|        | GET|HEAD | api/province/{id}                | province.get        | Baraear\ThaiAddress\Controllers\ThaiAddressController@getProvince        | api          |
|        | GET|HEAD | api/search/address/{query}       | search.address      | Baraear\ThaiAddress\Controllers\ThaiAddressController@search             | api          |
|        | GET|HEAD | api/sub-district/all             | sub-district.all    | Baraear\ThaiAddress\Controllers\ThaiAddressController@getAllSubDistricts | api          |
|        | GET|HEAD | api/sub-district/search/{query}  | sub-district.search | Baraear\ThaiAddress\Controllers\ThaiAddressController@searchSubDistrict  | api          |
|        | GET|HEAD | api/sub-district/{id}            | sub-district.get    | Baraear\ThaiAddress\Controllers\ThaiAddressController@getSubDistrict     | api          |
+--------+----------+----------------------------------+---------------------+--------------------------------------------------------------------------+--------------+

ผู้ใช้สามารถใช้งานการค้นหาชื่อตำบล, อำเภอ, จังหวัด และรหัสไปรษณีย์ได้ผ่านทาง Baraear\ThaiAddress\Controllers\ThaiAddressController@search หรือผ่าน API api/search/address/{query} ซึ่งการค้นหาจะใช้ keyword ไปค้นหาจากชื่อตำบล, อำเภอ, จังหวัด และรหัสไปรษณีย์ภายในครั้งเดียว

统计信息

  • 总下载量: 7.44k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 1
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-02-08