Skip to content

Laravel Custom FieldsCustom fields for Eloquent models

Define fields at runtime. Use them like normal attributes. No new columns.

php
class User extends Model
{
    use HasCustomFields;
}

CustomFields::create([
    'model' => User::class,
    'key' => 'tax_bracket',
    'label' => 'Tax bracket',
    'type' => 'select',
    'settings' => ['options' => ['a' => 'A', 'b' => 'B']],
]);

$user = User::create(['name' => 'Ken', 'tax_bracket' => 'b']);
$user->tax_bracket;   // "b"

User::whereCustomField('tax_bracket', 'b')->get();

Released under the MIT License.