morningtrain/laravel-fields

API Fields
2,882
Install
composer require morningtrain/laravel-fields
Latest Version:1.17.0
PHP:^7.2|^8.0
License:GPL-3.0-only
Last Updated:May 8, 2023
Links: GitHub  ·  Packagist
Maintainer: morningtrain

Laravel Fields

Install

Via Composer

$ composer require morningtrain/laravel-fields

Features

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

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

Basic field

Field::create('name_of_attribute')

Hidden (static) field

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

Belongs to many field

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

Credits

This package is developed and actively maintained by Morningtrain.

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

Related Packages

gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444