Download the PHP package pirumart/uganda-administrative-units without Composer
On this page you can find all versions of the php package pirumart/uganda-administrative-units. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download pirumart/uganda-administrative-units
More information about pirumart/uganda-administrative-units
Files in pirumart/uganda-administrative-units
Package uganda-administrative-units
Short Description Laravel Package for administrative units of Uganda (Regions, Districts, Counties, Sub-Counties, Parish and Villages)
License MIT
Homepage https://github.com/pirumart/uganda-administrative-units
Informations about the package uganda-administrative-units
Uganda Administrative Units
A Laravel package providing Eloquent models and migrations for Uganda's administrative units hierarchy: Region → District → County → Sub-County → Parish → Village.
Requires PHP ^8.2 and Laravel 12.
Installation
You can install the package via composer:
Publish and run the migration with:
This creates the regions, districts, counties, sub_counties, parishes and
villages tables. All of them use natural business keys (e.g. district_code,
county_code) rather than surrogate foreign keys.
Usage
Each model exposes relations to its parent and child units in the hierarchy:
Known limitation: District::region()
District has both a region column (the region name, stored as a string) and a
region() relation method of the same name. Eloquent's attribute accessor always
takes priority over a relation of the same name for magic property access, so
$district->region returns the string column - not the related Region model.
Call the relation explicitly instead:
Seed data
database/seeds/ contains a seeder per table (RegionTableSeeder,
DistrictTableSeeder, etc.), backed by the real Uganda administrative data in
database/data/*.csv (17 regions, 146 districts, 321 counties, 2105
sub-counties, 10322 parishes, 36839 villages). UgandaLocaleSeeder runs all six
in hierarchy order.
District/region counts reflect Uganda's current administrative boundaries, including the 2020 municipal-to-city reform (10 new cities) and 12 districts created since. County/sub-county/parish/village data has now been reconciled for 21 of those 22 districts; Madi Okollo has counties/sub-counties but no parish/village data yet - see CHANGELOG.
The easiest way to populate the tables is the console command:
Or run UgandaLocaleSeeder directly - it's autoloaded under
Pirumart\Uganda\Locale\Database\Seeders:
Factories
Each model has a factory for use in tests, generating fake codes/names instead of depending on the full CSV datasets:
Testing
Static analysis (PHPStan/Larastan) and code style (Laravel Pint) are also available:
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see AGENTS.md.
License
The MIT License (MIT). Please see License File for more information.
All versions of uganda-administrative-units with dependencies
spatie/laravel-package-tools Version ^1.16
illuminate/contracts Version ^12.0