PHPackages                             a2workspace/laravel-model-builder - 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. [Database &amp; ORM](/categories/database)
4. /
5. a2workspace/laravel-model-builder

ActiveLibrary[Database &amp; ORM](/categories/database)

a2workspace/laravel-model-builder
=================================

提供 Laravel 建立複雜資料的模型生成器

v1.1.1(4y ago)564[1 issues](https://github.com/A2Workspace/laravel-model-builder/issues)MITPHPPHP ^7.4|^8.0

Since Oct 20Pushed 3y ago1 watchersCompare

[ Source](https://github.com/A2Workspace/laravel-model-builder)[ Packagist](https://packagist.org/packages/a2workspace/laravel-model-builder)[ RSS](/packages/a2workspace-laravel-model-builder/feed)WikiDiscussions master Synced today

READMEChangelog (4)Dependencies (1)Versions (5)Used By (0)

Laravel Model Builder
=====================

[](#laravel-model-builder)

[ ![](https://github.com/A2Workspace/laravel-model-builder/actions/workflows/coverage.yml/badge.svg)](https://github.com/A2Workspace/laravel-model-builder)[ ![](https://camo.githubusercontent.com/b11280095c301f4864efd203d3e2be27f4baf2b228c8a8ccb90ae892b56e4dac/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f4132576f726b73706163652f6c61726176656c2d6d6f64656c2d6275696c6465722f74657374733f7374796c653d666c61742d737175617265)](https://github.com/A2Workspace/laravel-model-builder)[ ![](https://camo.githubusercontent.com/c60939e615b807598f7fd0261680840625a0c253297ac5c07968f17a7c6ae467/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f4132576f726b73706163652f6c61726176656c2d6d6f64656c2d6275696c6465722e7376673f7374796c653d666c61742d737175617265)](https://codecov.io/gh/A2Workspace/laravel-model-builder)[ ![](https://camo.githubusercontent.com/f3d26c94221dc927f0a7d9cbf228af96ee1bec5a076103ea41bae35583483b3e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4132576f726b73706163652f6c61726176656c2d6d6f64656c2d6275696c6465723f7374796c653d666c61742d737175617265)](https://github.com/A2Workspace/laravel-model-builder/blob/master/LICENSE)[ ![](https://camo.githubusercontent.com/8f062dfa7c8c328f108ce062c65041775a637309f82e85fb6395562c3e19e6fe/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6132776f726b73706163652f6c61726176656c2d6d6f64656c2d6275696c6465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/a2workspace/laravel-model-builder)[ ![](https://camo.githubusercontent.com/5fbb2e4c188708d3d639759743ebbbc2b78f2e0840e18997e795ee5613845862/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6132776f726b73706163652f6c61726176656c2d6d6f64656c2d6275696c6465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/a2workspace/laravel-model-builder)

`ModelBuilder` 提供創見複雜資料的模型生成器。

- [快速開始](##%E5%BF%AB%E9%80%9F%E9%96%8B%E5%A7%8B)
- [安裝](##%E5%AE%89%E8%A3%9D)
- [寫一個模型生成器](##%E5%AF%AB%E4%B8%80%E5%80%8B%E6%A8%A1%E5%9E%8B%E7%94%9F%E6%88%90%E5%99%A8)
    - [定義如何製作模型](##%E5%AE%9A%E7%BE%A9%E5%A6%82%E4%BD%95%E8%A3%BD%E4%BD%9C%E6%A8%A1%E5%9E%8B)
- [修改器方法 (Accessors &amp; Mutators)](##%E4%BF%AE%E6%94%B9%E5%99%A8%E6%96%B9%E6%B3%95)

快速開始
----

[](#快速開始)

一個簡單範例:

```
namespace App\ModelBuilders;

use App\Models\Product;
use A2Workspace\ModelBuilder\ModelBuilder;

class ProductBuilder extends ModelBuilder
{
    public function make()
    {
        $product = new Product;

        $product->name = $this->name;
        $product->price = $this->price;
        // ...

        return $product;
    }

    public function rules()
    {
        return [
            'name' => 'required',
            'price' => 'required|int|min:1',
        ];
    }
}
```

安裝
--

[](#安裝)

```
composer require a2workspace/laravel-model-builder
```

寫一個模型生成器
--------

[](#寫一個模型生成器)

要創見一個新的模型生成器，可以執行 `make:builder` artisan 命令：

```
php artisan make:builder ProductBuilder
```

### 定義如何製作模型

[](#定義如何製作模型)

在 `make()` 方法中初始化並定義模型的屬性。

```
class ProductBuilder extends ModelBuilder
{
    public function make(): Product
    {
        $product = new Product;

        $product->name = $this->name;
        $product->price = $this->price;
        // ...

        return $product;
    }
}
```

修改器方法
-----

[](#修改器方法)

`ModelBuilder` 有提供類似於 `Model` 的修改器方法。詳細參考官方文件 [Accessors &amp; Mutators](https://laravel.com/docs/8.x/eloquent-mutators#accessors-and-mutators)。

```
class ProductBuilder extends ModelBuilder
{
    public function setPriceAttribute($value)
    {
        if (0 >= $value) {
            throw new InvalidArgumentException('價格必須大於 0');
        }

        $this->attributes['price'] = $value;
    }
}
```

驗證
--

[](#驗證)

在 `create()` 時會進行驗證。

```
class ProductBuilder extends ModelBuilder
{
    public function rules(): array
    {
        return [
            // ...
        ];
    }

    public function messages(): array
    {
        return [
            // ...
        ];
    }
}
```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

1717d ago

PHP version history (2 changes)v1.0.0PHP ^7.4

v1.0.1PHP ^7.4|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/3df1b6bbe4567dd2a69769a4902e86f1e479065d5c5cf395f8104dde6f08deb3?d=identicon)[Shishamou](/maintainers/Shishamou)

---

Top Contributors

[![Shishamou](https://avatars.githubusercontent.com/u/7775781?v=4)](https://github.com/Shishamou "Shishamou (5 commits)")

---

Tags

eloquentlaravel

### Embed Badge

![Health badge](/badges/a2workspace-laravel-model-builder/health.svg)

```
[![Health](https://phpackages.com/badges/a2workspace-laravel-model-builder/health.svg)](https://phpackages.com/packages/a2workspace-laravel-model-builder)
```

###  Alternatives

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k117.2M118](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8351.6M87](/packages/propel-propel1)[pgvector/pgvector

pgvector support for PHP

198741.5k12](/packages/pgvector-pgvector)[jfelder/oracledb

Oracle DB driver for Laravel

11518.4k](/packages/jfelder-oracledb)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
