PHPackages                             morningtrain/laravel-fields - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. morningtrain/laravel-fields

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

morningtrain/laravel-fields
===========================

API Fields

1.17.0(3y ago)02.9k2GPL-3.0-onlyPHPPHP ^7.2|^8.0

Since Mar 22Pushed 3y ago3 watchersCompare

[ Source](https://github.com/Morning-Train/LaravelFields)[ Packagist](https://packagist.org/packages/morningtrain/laravel-fields)[ RSS](/packages/morningtrain-laravel-fields/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (5)Versions (43)Used By (2)

Laravel Fields
==============

[](#laravel-fields)

Install
-------

[](#install)

Via Composer

```
$ composer require morningtrain/laravel-fields
```

Features
--------

[](#features)

A field is at its core responsible for taking a request value and applying it to an eloquent model attribute.

### Applying fields

[](#applying-fields)

Having a field and a model instance, it can be applied like this:

```
$field->update($model, $request, FieldContract::BEFORE_SAVE);
```

and the following for post-save.

```
$field->update($model, $request, FieldContract::AFTER_SAVE);
```

Some fields will know that it should run before saving the model (like setting a basic attribute value) while some fields should be run after (attaching related models).

A more complete example would be:

```
$request = request();

if (is_array($fields) && !empty($fields)) {

    foreach ($fields as $field) {
        $field->update($model, $request, FieldContract::BEFORE_SAVE);
    }

    $model->save();

    foreach ($fields as $field) {
        $field->update($model, $request, FieldContract::AFTER_SAVE);
    }

}
```

The example uses the following classes:

```
use Illuminate\Database\Eloquent\Model;
use MorningTrain\Laravel\Fields\Contracts\FieldContract;
```

### Fields

[](#fields)

#### Basic field

[](#basic-field)

```
Field::create('name_of_attribute')
```

#### Hidden (static) field

[](#hidden-static-field)

```
Field::hidden('name_of_attribute', 'value to apply')
```

#### Belongs to many field

[](#belongs-to-many-field)

```
Field::belongsToMany('name_in_request')
    ->relation('name_of_relation')
    ->removeMissing()
```

Credits
-------

[](#credits)

This package is developed and actively maintained by [Morningtrain](https://morningtrain.dk).

```
 _- _ -__ - -- _ _ - --- __ ----- _ --_
(         Morningtrain, Denmark         )
 `---__- --__ _ --- _ -- ___ - - _ --_ ´
     o
    .  ____
  _||__|  |  ______   ______   ______
 (        | |      | |      | |      |
 /-()---() ~ ()--() ~ ()--() ~ ()--()
--------------------------------------

```

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity77

Established project with proven stability

 Bus Factor1

Top contributor holds 73.1% 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 ~36 days

Recently: every ~181 days

Total

42

Last Release

1104d ago

PHP version history (3 changes)1.0PHP &gt;=7.1

1.0.8PHP ^7.2

1.13.7PHP ^7.2|^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/278725?v=4)[morningtrain](/maintainers/morningtrain)[@morningtrain](https://github.com/morningtrain)

---

Top Contributors

[![bjarnebonde](https://avatars.githubusercontent.com/u/5835042?v=4)](https://github.com/bjarnebonde "bjarnebonde (38 commits)")[![Mat-Gr](https://avatars.githubusercontent.com/u/22744066?v=4)](https://github.com/Mat-Gr "Mat-Gr (13 commits)")[![SimonJnsson](https://avatars.githubusercontent.com/u/11147193?v=4)](https://github.com/SimonJnsson "SimonJnsson (1 commits)")

### Embed Badge

![Health badge](/badges/morningtrain-laravel-fields/health.svg)

```
[![Health](https://phpackages.com/badges/morningtrain-laravel-fields/health.svg)](https://phpackages.com/packages/morningtrain-laravel-fields)
```

###  Alternatives

[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[yajra/laravel-datatables-editor

Laravel DataTables Editor plugin for Laravel 5.5+.

1186.1M2](/packages/yajra-laravel-datatables-editor)[bjuppa/laravel-blog

Add blog functionality to your Laravel project

483.3k2](/packages/bjuppa-laravel-blog)

PHPackages © 2026

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