element from the provided $element * * @throws Exception\InvalidArgumentException * @throws Exception\DomainException */ public function render(ElementInterface $element): string { if (! $element instanceof CheckboxElement) { throw new Exception\InvalidArgumentException(sprintf( '%s requires that the element is of type Laminas\Form\Element\Checkbox', __METHOD__ )); } $name = $element->getName(); if ($name === null || $name === '') { throw new Exception\DomainException(sprintf( '%s requires that the element has an assigned name; none discovered', __METHOD__ )); } $attributes = $element->getAttributes(); $attributes['name'] = $name; $attributes['type'] = $this->getInputType(); $attributes['value'] = $element->getCheckedValue(); $closingBracket = $this->getInlineClosingBracket(); if ($element->isChecked()) { $attributes['checked'] = 'checked'; } $rendered = sprintf( 'createAttributesString($attributes), $closingBracket ); if ($element->useHiddenElement()) { $hiddenAttributes = [ 'disabled' => $attributes['disabled'] ?? false, 'name' => $attributes['name'], 'value' => $element->getUncheckedValue(), ]; $rendered = sprintf( 'createAttributesString($hiddenAttributes), $closingBracket ) . $rendered; } return $rendered; } /** * Return input type */ protected function getInputType(): string { return 'checkbox'; } }