0 follower

Abstract Class Yiisoft\Form\Field\Base\BaseField

InheritanceYiisoft\Form\Field\Base\BaseField » Yiisoft\Widget\Widget
SubclassesYiisoft\Form\Field\Base\ButtonField, Yiisoft\Form\Field\Base\DateTimeInputField, Yiisoft\Form\Field\Base\InputField, Yiisoft\Form\Field\Base\PartsField, Yiisoft\Form\Field\Button, Yiisoft\Form\Field\ButtonGroup, Yiisoft\Form\Field\Checkbox, Yiisoft\Form\Field\CheckboxList, Yiisoft\Form\Field\Color, Yiisoft\Form\Field\Date, Yiisoft\Form\Field\DateTimeLocal, Yiisoft\Form\Field\Email, Yiisoft\Form\Field\ErrorSummary, Yiisoft\Form\Field\Fieldset, Yiisoft\Form\Field\File, Yiisoft\Form\Field\Hidden, Yiisoft\Form\Field\Image, Yiisoft\Form\Field\Number, Yiisoft\Form\Field\Password, Yiisoft\Form\Field\RadioList, Yiisoft\Form\Field\Range, Yiisoft\Form\Field\ResetButton, Yiisoft\Form\Field\Select, Yiisoft\Form\Field\SubmitButton, Yiisoft\Form\Field\Telephone, Yiisoft\Form\Field\Text, Yiisoft\Form\Field\Textarea, Yiisoft\Form\Field\Time, Yiisoft\Form\Field\Url

Property Details

Hide inherited properties

$containerAttributes protected property
protected array $containerAttributes = []
$containerTag protected property
protected string $containerTag 'div'
$enrichment protected property
protected array $enrichment = []
$useContainer protected property
protected boolean $useContainer true

Method Details

Hide inherited methods

addContainerAttributes() public method

public addContainerAttributes( array $attributes ): Yiisoft\Form\Field\Base\BaseField
$attributes array

                final public function addContainerAttributes(array $attributes): static
{
    $new = clone $this;
    $new->containerAttributes = array_merge($new->containerAttributes, $attributes);
    return $new;
}

            
addContainerClass() public method

Add one or more CSS classes to the container tag.

public addContainerClass( string|null $class ): Yiisoft\Form\Field\Base\BaseField
$class string|null

One or many CSS classes.

                final public function addContainerClass(?string ...$class): static
{
    $new = clone $this;
    Html::addCssClass($new->containerAttributes, $class);
    return $new;
}

            
beforeRender() protected method

protected beforeRender( ): void

                protected function beforeRender(): void {}

            
begin() public method

public begin( ): string|null

                final public function begin(): ?string
{
    parent::begin();
    $this->isStartedByBegin = true;
    $this->beforeRender();
    $content = $this->generateBeginContent();
    return $this->renderOpenContainerAndContent($content);
}

            
containerAttributes() public method

public containerAttributes( array $attributes ): Yiisoft\Form\Field\Base\BaseField
$attributes array

                final public function containerAttributes(array $attributes): static
{
    $new = clone $this;
    $new->containerAttributes = $attributes;
    return $new;
}

            
containerClass() public method

Replace container tag CSS classes with a new set of classes.

public containerClass( string|null $class ): Yiisoft\Form\Field\Base\BaseField
$class string|null

One or many CSS classes.

                final public function containerClass(?string ...$class): static
{
    $new = clone $this;
    $new->containerAttributes['class'] = array_filter($class, static fn($c) => $c !== null);
    return $new;
}

            
containerId() public method

Set container tag ID.

public containerId( string|null $id ): Yiisoft\Form\Field\Base\BaseField
$id string|null

Container tag ID.

                final public function containerId(?string $id): static
{
    $new = clone $this;
    $new->containerAttributes['id'] = $id;
    return $new;
}

            
containerTag() public method

public containerTag( string $tag ): Yiisoft\Form\Field\Base\BaseField
$tag string

                final public function containerTag(string $tag): static
{
    if ($tag === '') {
        throw new InvalidArgumentException('Tag name cannot be empty.');
    }
    $new = clone $this;
    $new->containerTag = $tag;
    return $new;
}

            
generateBeginContent() protected method

protected generateBeginContent( ): string

                protected function generateBeginContent(): string
{
    return '';
}

            
generateContent() protected abstract method

protected abstract generateContent( ): string|null

                abstract protected function generateContent(): ?string;

            
generateEndContent() protected method

protected generateEndContent( ): string

                protected function generateEndContent(): string
{
    return '';
}

            
getThemeConfig() protected static method

protected static getThemeConfig( string|null $theme ): array
$theme string|null

                final protected static function getThemeConfig(?string $theme): array
{
    return ThemeContainer::getTheme($theme)?->getFieldConfig(static::class) ?? [];
}

            
prepareContainerAttributes() protected method

protected prepareContainerAttributes( array &$attributes ): void
$attributes array

                protected function prepareContainerAttributes(array &$attributes): void {}

            
render() public method

public render( ): string

                final public function render(): string
{
    if ($this->isStartedByBegin) {
        $this->isStartedByBegin = false;
        return $this->renderEnd();
    }
    $this->beforeRender();
    $content = $this->generateContent();
    if ($content === null) {
        $this->enrichment = [];
        return '';
    }
    $result = $this->renderOpenContainerAndContent($content);
    if ($this->useContainer) {
        $result .= "\n" . Html::closeTag($this->containerTag);
    }
    $this->enrichment = [];
    return $result;
}

            
useContainer() public method

public useContainer( boolean $use ): Yiisoft\Form\Field\Base\BaseField
$use boolean

                final public function useContainer(bool $use): static
{
    $new = clone $this;
    $new->useContainer = $use;
    return $new;
}