fullscreeninteractive/silverstripe-keyvaluefield

A Silverstripe FormField for extending TextField with several parts (keys)

1.1.0 2024-07-22 04:16 UTC

This package is auto-updated.

Last update: 2024-10-22 04:46:51 UTC


README

Version License

A reusable approach to a form field which extends a simple Text field to have several named parts (keys). This module also supports User Defined Forms.

Installation

composer require fullscreeninteractive/silverstripe-keyvaluefield

Usage

Image of Function

use FullscreenInteractive\KeyValueField\KeyValueField;

$fields = new FieldList(
    KeyValueField::create('Quantity', 'Enter quantity of each size')
        ->setKeys([
            'Small',
            'Medium',
            'Large'
        ])
);

When using ORM managed forms and models (i.e saveInto) data will be saved as a serialized array of the values to each of the keys. You can change this behaviour if needed in your Form class.

public function doSave($data, $form)
{
    $quantity = $form->dataFieldByName('Quantity');

    // returns an array of key => value
    $values = json_decode($quantity->dataValue(), true);

    echo $values['Small']
}

Licence

BSD 3-Clause License