Final Class Yiisoft\Html\Widget\CheckboxList\CheckboxList
| Inheritance | Yiisoft\Html\Widget\CheckboxList\CheckboxList |
|---|---|
| Implements | Yiisoft\Html\NoEncodeStringableInterface |
CheckboxList represents a list of checkboxes and their corresponding labels.
Public Methods
Method Details
| public addCheckboxAttributes( array $attributes ): self | ||
| $attributes | array | |
public function addCheckboxAttributes(array $attributes): self
{
$new = clone $this;
$new->checkboxAttributes = array_merge($new->checkboxAttributes, $attributes);
return $new;
}
| public addCheckboxLabelAttributes( array $attributes ): self | ||
| $attributes | array | |
public function addCheckboxLabelAttributes(array $attributes): self
{
$new = clone $this;
$new->checkboxLabelAttributes = array_merge($new->checkboxLabelAttributes, $attributes);
return $new;
}
| public addCheckboxWrapClass( string|null $class ): self | ||
| $class | string|null | |
public function addCheckboxWrapClass(?string ...$class): self
{
$new = clone $this;
Html::addCssClass(
$new->checkboxWrapAttributes,
array_filter($class, static fn($c) => $c !== null),
);
return $new;
}
| public addIndividualInputAttributes( array[] $attributes ): self | ||
| $attributes | array[] | |
public function addIndividualInputAttributes(array $attributes): self
{
$new = clone $this;
$new->individualInputAttributes = array_replace($new->individualInputAttributes, $attributes);
return $new;
}
| public checkboxAttributes( array $attributes ): self | ||
| $attributes | array | |
public function checkboxAttributes(array $attributes): self
{
$new = clone $this;
$new->checkboxAttributes = $attributes;
return $new;
}
| public checkboxLabelAttributes( array $attributes ): self | ||
| $attributes | array | |
public function checkboxLabelAttributes(array $attributes): self
{
$new = clone $this;
$new->checkboxLabelAttributes = $attributes;
return $new;
}
| public checkboxLabelWrap( boolean $wrap ): self | ||
| $wrap | boolean | |
public function checkboxLabelWrap(bool $wrap): self
{
$new = clone $this;
$new->checkboxLabelWrap = $wrap;
return $new;
}
| public checkboxWrapAttributes( array $attributes ): self | ||
| $attributes | array | |
public function checkboxWrapAttributes(array $attributes): self
{
$new = clone $this;
$new->checkboxWrapAttributes = $attributes;
return $new;
}
| public checkboxWrapClass( string|null $class ): self | ||
| $class | string|null | |
public function checkboxWrapClass(?string ...$class): self
{
$new = clone $this;
$new->checkboxWrapAttributes['class'] = array_filter($class, static fn($c) => $c !== null);
return $new;
}
| public checkboxWrapTag( string|null $name ): self | ||
| $name | string|null | |
public function checkboxWrapTag(?string $name): self
{
$new = clone $this;
$new->checkboxWrapTag = $name;
return $new;
}
| public containerAttributes( array $attributes ): self | ||
| $attributes | array | |
public function containerAttributes(array $attributes): self
{
$new = clone $this;
$new->containerAttributes = $attributes;
return $new;
}
| public containerTag( string|null $name ): self | ||
| $name | string|null | |
public function containerTag(?string $name): self
{
$new = clone $this;
$new->containerTag = $name;
return $new;
}
| public static create( string $name ): self | ||
| $name | string | |
public static function create(string $name): self
{
return new self($name);
}
| public disabled( boolean $disabled = true ): self | ||
| $disabled | boolean | |
public function disabled(bool $disabled = true): self
{
$new = clone $this;
$new->checkboxAttributes['disabled'] = $disabled;
return $new;
}
| public form( string|null $formId ): self | ||
| $formId | string|null | |
public function form(?string $formId): self
{
$new = clone $this;
$new->checkboxAttributes['form'] = $formId;
return $new;
}
| public individualInputAttributes( array[] $attributes ): self | ||
| $attributes | array[] | |
public function individualInputAttributes(array $attributes): self
{
$new = clone $this;
$new->individualInputAttributes = $attributes;
return $new;
}
| public itemFormatter( Closure|null $formatter ): self | ||
| $formatter | Closure|null | |
public function itemFormatter(?Closure $formatter): self
{
$new = clone $this;
$new->itemFormatter = $formatter;
return $new;
}
| public items( string[] $items, boolean $encodeLabels = true ): self | ||
| $items | string[] | |
| $encodeLabels | boolean |
Whether labels should be encoded. |
public function items(array $items, bool $encodeLabels = true): self
{
$new = clone $this;
$new->items = $items;
$new->encodeLabels = $encodeLabels;
return $new;
}
Fills items from an array provided. Array values are used for both input labels and input values.
| public itemsFromValues( boolean[]|float[]|integer[]|string[]|\Stringable[] $values, boolean $encodeLabels = true ): self | ||
| $values | boolean[]|float[]|integer[]|string[]|\Stringable[] | |
| $encodeLabels | boolean |
Whether labels should be encoded. |
public function itemsFromValues(array $values, bool $encodeLabels = true): self
{
$values = array_map('\strval', $values);
return $this->items(
array_combine($values, $values),
$encodeLabels,
);
}
| public name( string $name ): self | ||
| $name | string | |
public function name(string $name): self
{
$new = clone $this;
$new->name = $name;
return $new;
}
| public readonly( boolean $readonly = true ): self | ||
| $readonly | boolean | |
public function readonly(bool $readonly = true): self
{
$new = clone $this;
$new->checkboxAttributes['readonly'] = $readonly;
return $new;
}
| public render( ): string |
public function render(): string
{
$name = Html::getArrayableName($this->name);
if ($this->checkboxWrapTag === null) {
$beforeCheckbox = '';
$afterCheckbox = '';
} else {
$beforeCheckbox = Html::openTag($this->checkboxWrapTag, $this->checkboxWrapAttributes) . "\n";
$afterCheckbox = "\n" . Html::closeTag($this->checkboxWrapTag);
}
$lines = [];
$index = 0;
foreach ($this->items as $value => $label) {
$item = new CheckboxItem(
$index,
$name,
$value,
ArrayHelper::isIn($value, $this->values),
array_merge(
$this->checkboxAttributes,
$this->individualInputAttributes[$value] ?? [],
['name' => $name, 'value' => $value],
),
$label,
$this->encodeLabels,
$this->checkboxLabelAttributes,
$this->checkboxLabelWrap,
);
$lines[] = $beforeCheckbox . $this->formatItem($item) . $afterCheckbox;
$index++;
}
$html = [];
if ($this->uncheckValue !== null) {
$html[] = $this->renderUncheckInput($this->uncheckValue);
}
if (!empty($this->containerTag)) {
$html[] = Html::openTag($this->containerTag, $this->containerAttributes);
}
if ($lines) {
$html[] = implode($this->separator, $lines);
}
if (!empty($this->containerTag)) {
$html[] = Html::closeTag($this->containerTag);
}
return implode("\n", $html);
}
| public separator( string $separator ): self | ||
| $separator | string | |
public function separator(string $separator): self
{
$new = clone $this;
$new->separator = $separator;
return $new;
}
| public uncheckValue( boolean|float|integer|string|\Stringable|null $value ): self | ||
| $value | boolean|float|integer|string|\Stringable|null | |
public function uncheckValue(bool|float|int|string|Stringable|null $value): self
{
$new = clone $this;
$new->uncheckValue = $value === null ? null : (string) $value;
return $new;
}
| public value( boolean|string|integer|float|\Stringable|\BackedEnum $value ): self | ||
| $value | boolean|string|integer|float|\Stringable|\BackedEnum | |
public function value(bool|string|int|float|Stringable|BackedEnum ...$value): self
{
$new = clone $this;
$new->values = array_map(
static fn($v): string => (string) ($v instanceof BackedEnum ? $v->value : $v),
array_values($value),
);
return $new;
}
| public values( iterable $values ): self | ||
| $values | iterable | |
public function values(iterable $values): self
{
$values = is_array($values) ? $values : iterator_to_array($values);
return $this->value(...$values);
}
| public withoutContainer( ): self |
public function withoutContainer(): self
{
$new = clone $this;
$new->containerTag = null;
return $new;
}
Signup or Login in order to comment.