PHPackages                             ammrysir/jajahan - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ammrysir/jajahan

ActiveLibrary

ammrysir/jajahan
================

A boilerplate data model

00PHP

Since Feb 28Pushed 2mo agoCompare

[ Source](https://github.com/AmmrYsir/Jajahan)[ Packagist](https://packagist.org/packages/ammrysir/jajahan)[ RSS](/packages/ammrysir-jajahan/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Jajahan
=======

[](#jajahan)

A Malaysian states and districts data package for Laravel.

This is my **first Laravel package**, built to make Malaysian location data easy to plug into any Laravel app.

What this package does
----------------------

[](#what-this-package-does)

- Provides `states` and `districts` database structure
- Includes seeders with Malaysian states and district records
- Adds Eloquent models with relationships:
    - `State` has many `District`
    - `District` belongs to `State`
- Registers Artisan commands to help publish and seed data quickly

Package information
-------------------

[](#package-information)

- Package: `ammrysir/jajahan`
- Version: `1.0.0`
- Author: `Nao`
- PHP: `^8.3`
- Laravel support component: `illuminate/support ^12.0`

Installation
------------

[](#installation)

Install via Composer:

```
composer require ammrysir/jajahan
```

Laravel package auto-discovery is enabled through the service provider:

- `AmmrYsir\\Jajahan\\JajahanServiceProvider`

Available Artisan commands
--------------------------

[](#available-artisan-commands)

```
php artisan jajahan
php artisan jajahan:migrate
php artisan jajahan:seed --force
```

### Command details

[](#command-details)

- `jajahan`
    Show package info, available commands, and quick-start instructions.
- `jajahan:migrate {--force}`
    Publishes package migrations to your app.
- `jajahan:seed {--force}`
    Seeds states and districts into your database.

Quick start
-----------

[](#quick-start)

1. Publish migrations

```
php artisan jajahan:migrate
```

2. Run migrations

```
php artisan migrate
```

3. Seed package data

```
php artisan jajahan:seed --force
```

Database tables
---------------

[](#database-tables)

After running migrations and seeding:

- `states`

    - `id`
    - `name`
    - `name_long`
    - `code`
    - `capital`
    - timestamps
- `districts`

    - `id`
    - `state_id` (foreign key to `states.id`)
    - `name`
    - `code`
    - timestamps

Usage examples
--------------

[](#usage-examples)

### Use package models directly

[](#use-package-models-directly)

```
use AmmrYsir\Jajahan\Models\State;

$johor = State::find(1);
$districts = $johor?->districts;
```

```
use AmmrYsir\Jajahan\Models\District;

$district = District::with('state')->first();
$stateName = $district?->state?->name;
```

### Extend package models in your app

[](#extend-package-models-in-your-app)

If you want app-specific logic, extend the base models:

```
