Final Class Yiisoft\Html\Widget\RadioList\RadioList
| Inheritance | Yiisoft\Html\Widget\RadioList\RadioList |
|---|---|
| Implements | Yiisoft\Html\NoEncodeStringableInterface |
RadioList represents a list of radios and their corresponding labels.
Public Methods
Method Details
| 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 addRadioAttributes( array $attributes ): self | ||
| $attributes | array | |
public function addRadioAttributes(array $attributes): self
{
$new = clone $this;
$new->radioAttributes = array_merge($new->radioAttributes, $attributes);
return $new;
}
| public addRadioLabelAttributes( array $attributes ): self | ||
| $attributes | array | |
public function addRadioLabelAttributes(array $attributes): self
{
$new = clone $this;
$new->radioLabelAttributes = array_merge($new->radioLabelAttributes, $attributes);
return $new;
}
| public addRadioWrapClass( string|null $class ): self | ||
| $class | string|null | |
public function addRadioWrapClass(?string ...$class): self
{
$new = clone $this;
Html::addCssClass($new->radioWrapAttributes, $class);
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->radioAttributes['disabled'] = $disabled;
return $new;
}
| public form( string|null $formId ): self | ||
| $formId | string|null | |
public function form(?string $formId): self
{
$new = clone $this;
$new->radioAttributes['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 radioAttributes( array $attributes ): self | ||
| $attributes | array | |
public function radioAttributes(array $attributes): self
{
$new = clone $this;
$new->radioAttributes = $attributes;
return $new;
}
| public radioLabelAttributes( array $attributes ): self | ||
| $attributes | array | |
public function radioLabelAttributes(array $attributes): self
{
$new = clone $this;
$new->radioLabelAttributes = $attributes;
return $new;
}
| public radioLabelWrap( boolean $wrap ): self | ||
| $wrap | boolean | |
public function radioLabelWrap(bool $wrap): self
{
$new = clone $this;
$new->radioLabelWrap = $wrap;
return $new;
}
| public radioWrapAttributes( array $attributes ): self | ||
| $attributes | array | |
public function radioWrapAttributes(array $attributes): self
{
$new = clone $this;
$new->radioWrapAttributes = $attributes;
return $new;
}
| public radioWrapClass( string|null $class ): self | ||
| $class | string|null | |
public function radioWrapClass(?string ...$class): self
{
$new = clone $this;
$new->radioWrapAttributes['class'] = array_filter($class, static fn($c) => $c !== null);
return $new;
}
| public radioWrapTag( string|null $name ): self | ||
| $name | string|null | |
public function radioWrapTag(?string $name): self
{
$new = clone $this;
$new->radioWrapTag = $name;
return $new;
}
| public readonly( boolean $readonly = true ): self | ||
| $readonly | boolean | |
public function readonly(bool $readonly = true): self
{
$new = clone $this;
$new->radioAttributes['readonly'] = $readonly;
return $new;
}
| public render( ): string |
public function render(): string
{
if ($this->radioWrapTag === null) {
$beforeRadio = '';
$afterRadio = '';
} else {
$beforeRadio = Html::openTag($this->radioWrapTag, $this->radioWrapAttributes) . "\n";
$afterRadio = "\n" . Html::closeTag($this->radioWrapTag);
}
$lines = [];
$index = 0;
foreach ($this->items as $value => $label) {
$item = new RadioItem(
$index,
$this->name,
$value,
$this->value !== null && $this->value == $value,
array_merge(
$this->radioAttributes,
$this->individualInputAttributes[$value] ?? [],
['name' => $this->name, 'value' => $value],
),
$label,
$this->encodeLabels,
$this->radioLabelAttributes,
$this->radioLabelWrap,
);
$lines[] = $beforeRadio . $this->formatItem($item) . $afterRadio;
$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|float|integer|string|\Stringable|\BackedEnum|null $value ): self | ||
| $value | boolean|float|integer|string|\Stringable|\BackedEnum|null | |
public function value(bool|float|int|string|Stringable|BackedEnum|null $value): self
{
$new = clone $this;
$new->value = $value === null
? null
: (string) ($value instanceof BackedEnum ? $value->value : $value);
return $new;
}
| public withoutContainer( ): self |
public function withoutContainer(): self
{
$new = clone $this;
$new->containerTag = null;
return $new;
}
Signup or Login in order to comment.