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';
}
}