: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace NinjaForms\Includes\Entities;
use NinjaForms\Includes\Entities\SimpleEntity;
* Entity defining a submission field, including value if present
* Submission field is the submission value for a single field within a form's field collection
class SubmissionField extends SimpleEntity
* Record id for the stored data
protected $adminLabel = '';
* Indexed collection of option label/value/calc
* Indexed collection of fieldset repeater fields as arrays within parent field
protected $fieldsetRepeaterFields = [];
* Array of complete field settings
* Original source is from NF DB tables
* Submission value, null by default
* Construct entity from associative array
* @return SubmissionField
public static function fromArray(array $items): SubmissionField
foreach ($items as $property => $value) {
$obj = $obj->__set($property, $value);
//filter repeater field data
if($obj->type === "repeater" && !empty($obj->fieldsetRepeaterFields) && !empty($items["value"])){
foreach($obj->fieldsetRepeaterFields as $fieldsetRepeaterField){
array_push( $fieldIDs, $fieldsetRepeaterField['id']);
foreach($obj->value as $id => $valueArr){
$repeaterFieldID = substr($valueArr['id'], 0, strpos($valueArr['id'], "_"));
if(!in_array($repeaterFieldID, $fieldIDs)){
* Set field database record id
* @param string $id Field Id
* @return SubmissionField
public function setId(string $id): SubmissionField
public function getSlug(): string
* @param string $slug Field slug
* @return SubmissionField
public function setSlug(string $slug): SubmissionField
public function getLabel(): string
* @param string $label Field label
* @return SubmissionField
public function setLabel(string $label): SubmissionField
public function getAdminLabel(): string
return $this->adminLabel;
* @param string $adminLabel Admin label
* @return SubmissionField
public function setAdminLabel(string $adminLabel): SubmissionField
$this->adminLabel = $adminLabel;
public function getType(): string
* @param string $type Field type
* @return SubmissionField
public function setType(string $type): SubmissionField
public function getValue()
* @param mixed $value Submission Value
public function setValue($value): SubmissionField
* Get indexed collection of option label/value/calc
public function getOptions():array
* Set indexed collection of option label/value/calc
* @param array $options Indexed collection of option label/value/calc
* @return SubmissionField
public function setOptions(array $options):SubmissionField
$this->options = $options;
* Get Indexed collection of fieldset repeater fields within parent field
public function getFieldsetRepeaterFields():array
return $this->fieldsetRepeaterFields;
* Set Indexed collection of fieldset repeater fields within parent field
* @param SubmissionField[] $fieldsetRepeater Indexed collection of fieldset repeater fields within parent field
* @return SubmissionField
public function setFieldsetRepeaterFields(array $fieldsetRepeaterCollection):SubmissionField
$this->fieldsetRepeaterFields = $fieldsetRepeaterCollection;
* Get original field settings as stored in NF DB tables
public function getOriginal():array
* Set original source field settings (from NF DB tables)
* @param array $original Original source is from NF DB tables
* @return SubmissionField
public function setOriginal(array $original):SubmissionField
$this->original = $original;