FormBuilderProcessor::saveEntry() method

Save or update a form entry

If updating an existing entry, a non-zero id property must appear in the given $data array. If the id is 0 or not present, then a new entry will be created.

Example

$forms->addHookBefore('FormBuilderProcessor::saveEntry', function($e) {
  $data = $e->arguments(0); // array of form values indexed by field name
  // populate field named "foo" with value "bar", before it gets saved as an entry
  $data['foo'] = 'bar';
  // populate the argument back so it reflects the new value
  $e->arguments(0, $data);
});

Usage

$int = $processor->saveEntry(array $data);

Arguments

NameType(s)Description
$dataarray

Entry data, array indexed by field name

Return value

int

Entry ID that was added or updated


Hooking $processor→saveEntry(…)

You can add your own hook events that are executed either before or after the $processor->saveEntry(…) method is executed. Examples of both are included below. A good place for hook code such as this is in your /site/ready.php file.

Hooking before

The 'before' hooks are called immediately before each $processor->saveEntry(…) method call is executed. This type of hook is especially useful for modifying arguments before they are sent to the method.

$this->addHookBefore('FormBuilderProcessor::saveEntry', function(HookEvent $event) {
  // Get the object the event occurred on, if needed
  $FormBuilderProcessor = $event->object;

  // Get values of arguments sent to hook (and optionally modify them)
  $data = $event->arguments(0);

  /* Your code here, perhaps modifying arguments */

  // Populate back arguments (if you have modified them)
  $event->arguments(0, $data);
});

Hooking after

The 'after' hooks are called immediately after each $processor->saveEntry(…) method call is executed. This type of hook is especially useful for modifying the value that was returned by the method call.

$this->addHookAfter('FormBuilderProcessor::saveEntry', function(HookEvent $event) {
  // Get the object the event occurred on, if needed
  $FormBuilderProcessor = $event->object;

  // An 'after' hook can retrieve and/or modify the return value
  $return = $event->return;

  // Get values of arguments sent to hook (if needed)
  $data = $event->arguments(0);

  /* Your code here, perhaps modifying the return value */

  // Populate back return value, if you have modified it
  $event->return = $return;
});

$processor methods and properties

API reference based on ProcessWire core version 3.0.252