0 follower

Final Class Yiisoft\Yii\DataView\ListView\ListView

InheritanceYiisoft\Yii\DataView\ListView\ListView » Yiisoft\Yii\DataView\BaseListView » Yiisoft\Widget\Widget

ListView is a flexible widget for displaying a list of data items with customizable rendering and layout.

Example usage: `php $listView = (new ListView())

->listTag('ul')
->listAttributes(['class' => 'my-list'])
->itemTag('li')
->itemView(fn($data, $context) => Html::encode($data['name']))
->dataReader($dataReader);

echo $listView->render(); `

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Yii\DataView\ListView\ListView
addContainerClass() Adds one or more CSS classes to the existing container classes. Yiisoft\Yii\DataView\BaseListView
addHeaderClass() Yiisoft\Yii\DataView\BaseListView
afterItem() Return new instance with a string or a function that is called after rendering each item. Yiisoft\Yii\DataView\ListView\ListView
append() Returns a new instance with HTML content to be added before the closing container tag. Yiisoft\Yii\DataView\BaseListView
beforeItem() Return new instance with a string or a function that is called before rendering each item. Yiisoft\Yii\DataView\ListView\ListView
containerAttributes() Returns a new instance with the HTML attributes for container. Yiisoft\Yii\DataView\BaseListView
containerClass() Set new container classes. Yiisoft\Yii\DataView\BaseListView
containerTag() Yiisoft\Yii\DataView\BaseListView
dataReader() Yiisoft\Yii\DataView\BaseListView
encodeHeader() Yiisoft\Yii\DataView\BaseListView
header() Return new instance with the header for the grid. Yiisoft\Yii\DataView\BaseListView
headerAttributes() Return new instance with the HTML attributes for the header. Yiisoft\Yii\DataView\BaseListView
headerClass() Yiisoft\Yii\DataView\BaseListView
headerTag() Yiisoft\Yii\DataView\BaseListView
id() Returns a new instance with the id of the grid view, detail view, or list view. Yiisoft\Yii\DataView\BaseListView
ignoreMissingPage() Yiisoft\Yii\DataView\BaseListView
itemAttributes() Returns a new instance with the HTML attributes for list item. Yiisoft\Yii\DataView\ListView\ListView
itemTag() Set the HTML tag for the list item. Yiisoft\Yii\DataView\ListView\ListView
itemView() Return new instance with the content rendering configuration for each list item. Yiisoft\Yii\DataView\ListView\ListView
itemViewParameters() Return new instance with the additional parameters for the view. Yiisoft\Yii\DataView\ListView\ListView
keysetPaginationConfig() Set configuration for keyset pagination widget. Yiisoft\Yii\DataView\BaseListView
layout() Returns a new instance with the layout of the grid view, and list view. Yiisoft\Yii\DataView\BaseListView
listAttributes() Set the HTML attributes for the list. Yiisoft\Yii\DataView\ListView\ListView
listTag() Set the HTML tag for the list. Yiisoft\Yii\DataView\ListView\ListView
multiSort() Yiisoft\Yii\DataView\BaseListView
noResultsAttributes() Yiisoft\Yii\DataView\ListView\ListView
noResultsTag() Yiisoft\Yii\DataView\ListView\ListView
noResultsTemplate() Yiisoft\Yii\DataView\BaseListView
noResultsText() Yiisoft\Yii\DataView\BaseListView
offsetPaginationConfig() Set configuration for offset pagination widget. Yiisoft\Yii\DataView\BaseListView
pageNotFoundExceptionCallback() Yiisoft\Yii\DataView\BaseListView
pageParameterName() Return a new instance with the name of argument or query parameter for page. Yiisoft\Yii\DataView\BaseListView
pageParameterType() Creates a new instance with the specified page parameter type. Yiisoft\Yii\DataView\BaseListView
pageSizeAttributes() Returns a new instance with the HTML attributes for page size wrapper tag. Yiisoft\Yii\DataView\BaseListView
pageSizeConstraint() Get a new instance with a page size constraint set. Yiisoft\Yii\DataView\BaseListView
pageSizeParameterName() Return a new instance with the name of argument or query parameter for page size. Yiisoft\Yii\DataView\BaseListView
pageSizeParameterType() Creates a new instance with the specified page size parameter type. Yiisoft\Yii\DataView\BaseListView
pageSizeTag() Yiisoft\Yii\DataView\BaseListView
pageSizeTemplate() Returns a new instance with the page size template. Yiisoft\Yii\DataView\BaseListView
pageSizeWidget() Yiisoft\Yii\DataView\BaseListView
paginationWidget() Yiisoft\Yii\DataView\BaseListView
prepend() Returns a new instance with HTML content to be added after the opening container tag. Yiisoft\Yii\DataView\BaseListView
previousPageParameterName() Yiisoft\Yii\DataView\BaseListView
previousPageParameterType() Creates a new instance with the specified previous page parameter type. Yiisoft\Yii\DataView\BaseListView
render() Yiisoft\Yii\DataView\BaseListView
separator() Return new instance with the separator between the items. Yiisoft\Yii\DataView\ListView\ListView
sortParameterName() Creates a new instance with the specified sort parameter name. Yiisoft\Yii\DataView\BaseListView
sortParameterType() Creates a new instance with the specified sort parameter type. Yiisoft\Yii\DataView\BaseListView
summaryAttributes() Returns a new instance with the HTML attributes for summary wrapper tag. Yiisoft\Yii\DataView\BaseListView
summaryTag() Yiisoft\Yii\DataView\BaseListView
summaryTemplate() Returns a new instance with the summary template. Yiisoft\Yii\DataView\BaseListView
toolbar() Return new instance with toolbar content. Yiisoft\Yii\DataView\BaseListView
urlArguments() Return a new instance with arguments of the route. Yiisoft\Yii\DataView\BaseListView
urlCreator() Yiisoft\Yii\DataView\BaseListView
urlParameterProvider() Yiisoft\Yii\DataView\BaseListView
urlQueryParameters() Return a new instance with query parameters of the route. Yiisoft\Yii\DataView\BaseListView

Constants

Hide inherited constants

Constant Value Description Defined By
DEFAULT_TRANSLATION_CATEGORY 'yii-dataview' A name for CategorySource used with translator (TranslatorInterface) by default. Yiisoft\Yii\DataView\BaseListView

Method Details

Hide inherited methods

__construct() public method

public __construct( \Yiisoft\Translator\TranslatorInterface|null $translator null, string $translationCategory self::DEFAULT_TRANSLATION_CATEGORY ): mixed
$translator \Yiisoft\Translator\TranslatorInterface|null
$translationCategory string

                public function __construct(
    ?TranslatorInterface $translator = null,
    string $translationCategory = self::DEFAULT_TRANSLATION_CATEGORY,
) {
    $this->view = new View();
    parent::__construct($translator, $translationCategory);
}

            
addContainerClass() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::addContainerClass()

Adds one or more CSS classes to the existing container classes.

Multiple classes can be added by passing them as separate arguments. null values are filtered out automatically.

public addContainerClass( \BackedEnum|string|null $class ): Yiisoft\Yii\DataView\ListView\ListView
$class \BackedEnum|string|null

One or more CSS class names to add. Pass null to skip adding a class.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the specified CSS classes added to existing ones.

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

            
addHeaderClass() public method
public addHeaderClass( \BackedEnum|string|null $class ): Yiisoft\Yii\DataView\ListView\ListView
$class \BackedEnum|string|null

                public function addHeaderClass(BackedEnum|string|null ...$class): static
{
    $new = clone $this;
    Html::addCssClass($new->headerAttributes, $class);
    return $new;
}

            
afterItem() public method

Return new instance with a string or a function that is called after rendering each item.

See also \Yiisoft\Yii\DataView\ListView\renderAfterItem().

public afterItem( Closure|string $value ): self
$value Closure|string

A string or a callback with the following signature:

function (ListItemContext $context): string|Stringable

The return result of the function will be rendered directly.

return self

New instance.

                public function afterItem(Closure|string $value): self
{
    $new = clone $this;
    $new->afterItem = $value;
    return $new;
}

            
append() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::append()

Returns a new instance with HTML content to be added before the closing container tag.

public append( string|\Stringable $append ): Yiisoft\Yii\DataView\ListView\ListView
$append string|\Stringable

The HTML content to be appended.

                final public function append(string|Stringable ...$append): static
{
    $new = clone $this;
    $new->append = implode('', $append);
    return $new;
}

            
beforeItem() public method

Return new instance with a string or a function that is called before rendering each item.

See also \Yiisoft\Yii\DataView\ListView\renderBeforeItem().

public beforeItem( Closure|string $value ): self
$value Closure|string

A string or a callback with the following signature:

function (ListItemContext $context): string|Stringable

The return result of the function will be rendered directly.

return self

New instance.

                public function beforeItem(Closure|string $value): self
{
    $new = clone $this;
    $new->beforeItem = $value;
    return $new;
}

            
containerAttributes() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::containerAttributes()

Returns a new instance with the HTML attributes for container.

public containerAttributes( array $attributes ): Yiisoft\Yii\DataView\ListView\ListView
$attributes array

Attribute values indexed by attribute names.

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

            
containerClass() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::containerClass()

Set new container classes.

Multiple classes can be set by passing them as separate arguments. null values are filtered out automatically.

public containerClass( \BackedEnum|string|null $class ): Yiisoft\Yii\DataView\ListView\ListView
$class \BackedEnum|string|null

One or more CSS class names to use. Pass null to skip a class.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the specified CSS classes set.

                public function containerClass(BackedEnum|string|null ...$class): static
{
    $new = clone $this;
    $new->containerAttributes['class'] = [];
    Html::addCssClass($new->containerAttributes, $class);
    return $new;
}

            
containerTag() public method
public containerTag( string|null $tag ): Yiisoft\Yii\DataView\ListView\ListView
$tag string|null

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

            
dataReader() public method
public dataReader( \Yiisoft\Data\Reader\ReadableDataInterface $dataReader ): Yiisoft\Yii\DataView\ListView\ListView
$dataReader \Yiisoft\Data\Reader\ReadableDataInterface

                final public function dataReader(ReadableDataInterface $dataReader): static
{
    $new = clone $this;
    $new->dataReader = $dataReader;
    return $new;
}

            
encodeHeader() public method
public encodeHeader( boolean $encode ): Yiisoft\Yii\DataView\ListView\ListView
$encode boolean

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

            
getDataReader() protected method
protected getDataReader( ): \Yiisoft\Data\Reader\ReadableDataInterface

                final protected function getDataReader(): ReadableDataInterface
{
    if ($this->dataReader === null) {
        throw new DataReaderNotSetException();
    }
    return $this->dataReader;
}

            
getDefaultPageSize() protected method
protected getDefaultPageSize( ): integer

                final protected function getDefaultPageSize(): int
{
    $dataReader = $this->getDataReader();
    $pageSize = $dataReader instanceof PaginatorInterface
        ? $dataReader->getPageSize()
        : PaginatorInterface::DEFAULT_PAGE_SIZE;
    if (is_int($this->pageSizeConstraint)) {
        return $pageSize <= $this->pageSizeConstraint
            ? $pageSize
            : $this->pageSizeConstraint;
    }
    if (is_array($this->pageSizeConstraint)) {
        return in_array($pageSize, $this->pageSizeConstraint, true)
            ? $pageSize
            : $this->pageSizeConstraint[0];
    }
    return $pageSize;
}

            
getNoResultsContent() protected method
protected getNoResultsContent( ): string

                final protected function getNoResultsContent(): string
{
    $text = $this->translator->translate(
        $this->noResultsText,
        category: $this->translationCategory,
    );
    return str_replace('{text}', $text, $this->noResultsTemplate);
}

            
header() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::header()

Return new instance with the header for the grid.

public header( string $content ): Yiisoft\Yii\DataView\ListView\ListView
$content string

The header of the grid.

headerAttributes()

                final public function header(string $content): static
{
    $new = clone $this;
    $new->header = $content;
    return $new;
}

            
headerAttributes() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::headerAttributes()

Return new instance with the HTML attributes for the header.

public headerAttributes( array $attributes ): Yiisoft\Yii\DataView\ListView\ListView
$attributes array

Attribute values indexed by attribute names.

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

            
headerClass() public method
public headerClass( \BackedEnum|string|null $class ): Yiisoft\Yii\DataView\ListView\ListView
$class \BackedEnum|string|null

                public function headerClass(BackedEnum|string|null ...$class): static
{
    $new = clone $this;
    $new->headerAttributes['class'] = [];
    Html::addCssClass($new->headerAttributes, $class);
    return $new;
}

            
headerTag() public method
public headerTag( string|null $tag ): Yiisoft\Yii\DataView\ListView\ListView
$tag string|null

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

            
id() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::id()

Returns a new instance with the id of the grid view, detail view, or list view.

public id( string $id ): Yiisoft\Yii\DataView\ListView\ListView
$id string

The ID of the grid view, detail view, or list view.

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

            
ignoreMissingPage() public method
public ignoreMissingPage( boolean $enabled ): Yiisoft\Yii\DataView\ListView\ListView
$enabled boolean

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

            
itemAttributes() public method

Returns a new instance with the HTML attributes for list item.

public itemAttributes( array|Closure $attributes ): self
$attributes array|Closure

Attribute values/callbacks indexed by attribute names or a callback with the following signature:

function (ListItemContext $context): array

Returned is an array of attributes.

In the array of attributes, each attribute value can be a callback like the following:

[
    'class' => static fn(ListItemContext $context) => "custom-class-{$context->data['id']}",
]

                public function itemAttributes(array|Closure $attributes): self
{
    $new = clone $this;
    $new->itemAttributes = $attributes;
    return $new;
}

            
itemTag() public method

Set the HTML tag for the list item.

public itemTag( string|null $tag ): self
$tag string|null

The tag name. If null, no tag will be rendered.

return self

New instance with the specified item tag.

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

            
itemView() public method

Return new instance with the content rendering configuration for each list item.

public itemView( Closure|string $value ): self
$value Closure|string

Either a view file path (string) or a closure for rendering item content.

If a string is provided, it should be a path to a view file. The view will receive:

If a closure is provided, it should have the following signature: `php function (array|object $data, ListItemContext $context): string|Stringable `

return self

New instance.

                public function itemView(string|Closure $value): self
{
    $new = clone $this;
    $new->itemView = $value;
    return $new;
}

            
itemViewParameters() public method

Return new instance with the additional parameters for the view.

public itemViewParameters( array $parameters ): self
$parameters array

Additional parameters to be passed to the view set in itemView() when it is being rendered.

return self

New instance with the specified view parameters.

                public function itemViewParameters(array $parameters): self
{
    $new = clone $this;
    $new->itemViewParameters = $parameters;
    return $new;
}

            
keysetPaginationConfig() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::keysetPaginationConfig()

Set configuration for keyset pagination widget.

public keysetPaginationConfig( array $config ): Yiisoft\Yii\DataView\ListView\ListView
$config array

Widget config.

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

            
layout() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::layout()

Returns a new instance with the layout of the grid view, and list view.

public layout( string $view ): Yiisoft\Yii\DataView\ListView\ListView
$view string

The template that determines how different sections of the grid view, list view. Should be organized.

The following tokens will be replaced with the corresponding section contents:

  • {header}: The header section.
  • {toolbar}: The toolbar section.

                final public function layout(string $view): static
{
    $new = clone $this;
    $new->layout = $view;
    return $new;
}

            
listAttributes() public method

Set the HTML attributes for the list.

public listAttributes( array $attributes ): self
$attributes array

Attribute values indexed by attribute names.

return self

New instance with the specified list attributes.

                public function listAttributes(array $attributes): self
{
    $new = clone $this;
    $new->listAttributes = $attributes;
    return $new;
}

            
listTag() public method

Set the HTML tag for the list.

public listTag( string|null $tag ): self
$tag string|null

The tag name. If null, no tag will be rendered.

return self

New instance with the specified list tag.

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

            
makeFilters() protected method

protected makeFilters( ): array

                protected function makeFilters(): array
{
    return [[], new ValidationResult()];
}

            
multiSort() public method
public multiSort( boolean $enable true ): Yiisoft\Yii\DataView\ListView\ListView
$enable boolean

                final public function multiSort(bool $enable = true): static
{
    $new = clone $this;
    $new->multiSort = $enable;
    return $new;
}

            
noResultsAttributes() public method

public noResultsAttributes( array $attributes ): self
$attributes array

                public function noResultsAttributes(array $attributes): self
{
    $new = clone $this;
    $new->noResultsAttributes = $attributes;
    return $new;
}

            
noResultsTag() public method

public noResultsTag( string|null $tag ): self
$tag string|null

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

            
noResultsTemplate() public method
public noResultsTemplate( string $template ): Yiisoft\Yii\DataView\ListView\ListView
$template string

                final public function noResultsTemplate(string $template): static
{
    $new = clone $this;
    $new->noResultsTemplate = $template;
    return $new;
}

            
noResultsText() public method
public noResultsText( string $text ): Yiisoft\Yii\DataView\ListView\ListView
$text string

                final public function noResultsText(string $text): static
{
    $new = clone $this;
    $new->noResultsText = $text;
    return $new;
}

            
offsetPaginationConfig() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::offsetPaginationConfig()

Set configuration for offset pagination widget.

public offsetPaginationConfig( array $config ): Yiisoft\Yii\DataView\ListView\ListView
$config array

Widget config.

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

            
pageNotFoundExceptionCallback() public method
public pageNotFoundExceptionCallback( callable|null $callback ): Yiisoft\Yii\DataView\ListView\ListView
$callback callable|null

                final public function pageNotFoundExceptionCallback(?callable $callback): static
{
    $new = clone $this;
    $new->pageNotFoundExceptionCallback = $callback;
    return $new;
}

            
pageParameterName() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageParameterName()

Return a new instance with the name of argument or query parameter for page.

public pageParameterName( string $name ): Yiisoft\Yii\DataView\ListView\ListView
$name string

The name of argument or query parameter for page.

                final public function pageParameterName(string $name): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withPageParameterName($name);
    return $new;
}

            
pageParameterType() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageParameterType()

Creates a new instance with the specified page parameter type.

public pageParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\ListView\ListView
$type \Yiisoft\Yii\DataView\Url\UrlParameterType

The new page parameter type.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the updated page parameter type.

                final public function pageParameterType(UrlParameterType $type): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withPageParameterType($type);
    return $new;
}

            
pageSizeAttributes() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageSizeAttributes()

Returns a new instance with the HTML attributes for page size wrapper tag.

public pageSizeAttributes( array $attributes ): Yiisoft\Yii\DataView\ListView\ListView
$attributes array

Attribute values indexed by attribute names.

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

            
pageSizeConstraint() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageSizeConstraint()

Get a new instance with a page size constraint set.

public pageSizeConstraint( array|boolean|integer $pageSizeConstraint ): Yiisoft\Yii\DataView\ListView\ListView
$pageSizeConstraint array|boolean|integer

Page size constraint. true - default only. false - no constraint. int - maximum page size. [int, int, ...] - a list of page sizes to choose from.

return Yiisoft\Yii\DataView\ListView\ListView

New instance.

                final public function pageSizeConstraint(array|int|bool $pageSizeConstraint): static
{
    $new = clone $this;
    $new->pageSizeConstraint = $pageSizeConstraint;
    return $new;
}

            
pageSizeParameterName() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageSizeParameterName()

Return a new instance with the name of argument or query parameter for page size.

public pageSizeParameterName( string $name ): Yiisoft\Yii\DataView\ListView\ListView
$name string

The name of argument or query parameter for page size.

                final public function pageSizeParameterName(string $name): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withPageSizeParameterName($name);
    return $new;
}

            
pageSizeParameterType() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageSizeParameterType()

Creates a new instance with the specified page size parameter type.

public pageSizeParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\ListView\ListView
$type \Yiisoft\Yii\DataView\Url\UrlParameterType

The new page size parameter type.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the updated page size parameter type.

                final public function pageSizeParameterType(UrlParameterType $type): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withPageSizeParameterType($type);
    return $new;
}

            
pageSizeTag() public method
public pageSizeTag( string|null $tag ): Yiisoft\Yii\DataView\ListView\ListView
$tag string|null

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

            
pageSizeTemplate() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::pageSizeTemplate()

Returns a new instance with the page size template.

public pageSizeTemplate( string|null $template ): Yiisoft\Yii\DataView\ListView\ListView
$template string|null

The HTML content to be displayed as the page size control. If you don't want to show control, you may set it with an empty string or null.

The following tokens will be replaced with the corresponding values:

  • {widget} — page size widget.

                final public function pageSizeTemplate(?string $template): static
{
    $new = clone $this;
    $new->pageSizeTemplate = $template;
    return $new;
}

            
pageSizeWidget() public method
public pageSizeWidget( Yiisoft\Yii\DataView\PageSize\PageSizeWidgetInterface|null $widget ): Yiisoft\Yii\DataView\ListView\ListView
$widget Yiisoft\Yii\DataView\PageSize\PageSizeWidgetInterface|null

                final public function pageSizeWidget(?PageSizeWidgetInterface $widget): static
{
    $new = clone $this;
    $new->pageSizeWidget = $widget;
    return $new;
}

            
paginationWidget() public method
public paginationWidget( Yiisoft\Yii\DataView\Pagination\PaginationWidgetInterface|null $widget ): Yiisoft\Yii\DataView\ListView\ListView
$widget Yiisoft\Yii\DataView\Pagination\PaginationWidgetInterface|null

                final public function paginationWidget(?PaginationWidgetInterface $widget): static
{
    $new = clone $this;
    $new->paginationWidget = $widget;
    return $new;
}

            
prepareOrder() protected method

protected prepareOrder( array $order ): array
$order array

                protected function prepareOrder(array $order): array
{
    return [];
}

            
prepend() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::prepend()

Returns a new instance with HTML content to be added after the opening container tag.

public prepend( string|\Stringable $prepend ): Yiisoft\Yii\DataView\ListView\ListView
$prepend string|\Stringable

The HTML content to be prepended.

                final public function prepend(string|Stringable ...$prepend): static
{
    $new = clone $this;
    $new->prepend = implode('', $prepend);
    return $new;
}

            
previousPageParameterName() public method
public previousPageParameterName( string $name ): Yiisoft\Yii\DataView\ListView\ListView
$name string

                final public function previousPageParameterName(string $name): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withPreviousPageParameterName($name);
    return $new;
}

            
previousPageParameterType() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::previousPageParameterType()

Creates a new instance with the specified previous page parameter type.

public previousPageParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\ListView\ListView
$type \Yiisoft\Yii\DataView\Url\UrlParameterType

The new previous page parameter type.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the updated previous page parameter type.

                final public function previousPageParameterType(UrlParameterType $type): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withPreviousPageParameterType($type);
    return $new;
}

            
render() public method
public render( ): string

                final public function render(): string
{
    [$filters, $filterValidationResult] = $this->makeFilters();
    [$preparedDataReader, $items] = $filters === null
        ? [null, []]
        : $this->prepareDataReaderAndItems($filters);
    $content = trim(
        strtr(
            $this->layout,
            [
                '{header}' => $this->renderHeader(),
                '{toolbar}' => $this->toolbar,
                '{items}' => $this->renderItems($items, $filterValidationResult, $preparedDataReader),
                '{summary}' => $this->renderSummary($preparedDataReader),
                '{pager}' => $this->renderPagination($preparedDataReader),
                '{pageSize}' => $this->renderPageSize($preparedDataReader),
            ],
        ),
    );
    if ($this->prepend !== '') {
        $content = $this->prepend . "\n" . $content;
    }
    if ($this->append !== '') {
        $content .= "\n" . $this->append;
    }
    return $this->containerTag === null
        ? $content
        : Html::tag($this->containerTag, "\n" . $content . "\n", $this->containerAttributes)
            ->encode(false)
            ->render();
}

            
renderItems() protected method

protected renderItems( array $items, \Yiisoft\Validator\Result $filterValidationResult, \Yiisoft\Data\Reader\ReadableDataInterface|null $preparedDataReader ): string
$items array
$filterValidationResult \Yiisoft\Validator\Result
$preparedDataReader \Yiisoft\Data\Reader\ReadableDataInterface|null

                protected function renderItems(
    array $items,
    ValidationResult $filterValidationResult,
    ?ReadableDataInterface $preparedDataReader,
): string {
    if (empty($items)) {
        return $this->renderNoResults();
    }
    $rows = [];
    foreach ($items as $key => $value) {
        $context = new ListItemContext($value, $key, count($rows), $this);
        $rows[] = $this->renderBeforeItem($context)
            . $this->renderItem($context)
            . $this->renderAfterItem($context);
    }
    $content = implode($this->separator, $rows);
    return $this->listTag === null
        ? $content
        : Html::tag($this->listTag, "\n" . $content . "\n", $this->listAttributes)
            ->encode(false)
            ->render();
}

            
separator() public method

Return new instance with the separator between the items.

public separator( string $separator ): self
$separator string

The HTML code to be displayed between any two consecutive items.

return self

New instance with the specified separator.

                public function separator(string $separator): self
{
    $new = clone $this;
    $new->separator = $separator;
    return $new;
}

            
sortParameterName() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::sortParameterName()

Creates a new instance with the specified sort parameter name.

public sortParameterName( string $name ): Yiisoft\Yii\DataView\ListView\ListView
$name string

The new sort parameter name.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the updated sort parameter name.

                final public function sortParameterName(string $name): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withSortParameterName($name);
    return $new;
}

            
sortParameterType() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::sortParameterType()

Creates a new instance with the specified sort parameter type.

public sortParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\ListView\ListView
$type \Yiisoft\Yii\DataView\Url\UrlParameterType

The new sort parameter type.

return Yiisoft\Yii\DataView\ListView\ListView

A new instance with the updated sort parameter type.

                final public function sortParameterType(UrlParameterType $type): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withSortParameterType($type);
    return $new;
}

            
summaryAttributes() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::summaryAttributes()

Returns a new instance with the HTML attributes for summary wrapper tag.

public summaryAttributes( array $attributes ): Yiisoft\Yii\DataView\ListView\ListView
$attributes array

Attribute values indexed by attribute names.

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

            
summaryTag() public method
public summaryTag( string|null $tag ): Yiisoft\Yii\DataView\ListView\ListView
$tag string|null

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

            
summaryTemplate() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::summaryTemplate()

Returns a new instance with the summary template.

public summaryTemplate( string|null $template ): Yiisoft\Yii\DataView\ListView\ListView
$template string|null

The HTML content to be displayed as the summary. If you don't want to show the summary, you may set it with an empty string or null.

The following tokens will be replaced with the corresponding values:

  • {begin} — the starting row number (1-based) currently being displayed.
  • {end} — the ending row number (1-based) currently being displayed.
  • {count} — the number of rows currently being displayed.
  • {totalCount} — the total number of rows available.
  • {currentPage} — the page number (1-based) current being displayed.
  • {totalPages} — the number of pages available.

                final public function summaryTemplate(?string $template): static
{
    $new = clone $this;
    $new->summaryTemplate = $template;
    return $new;
}

            
toolbar() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::toolbar()

Return new instance with toolbar content.

public toolbar( string $content ): Yiisoft\Yii\DataView\ListView\ListView
$content string

The toolbar content.

                final public function toolbar(string $content): static
{
    $new = clone $this;
    $new->toolbar = $content;
    return $new;
}

            
urlArguments() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::urlArguments()

Return a new instance with arguments of the route.

public urlArguments( array $arguments ): Yiisoft\Yii\DataView\ListView\ListView
$arguments array

Arguments of the route.

                final public function urlArguments(array $arguments): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withArguments($arguments);
    return $new;
}

            
urlCreator() public method
public urlCreator( callable|null $urlCreator ): Yiisoft\Yii\DataView\ListView\ListView
$urlCreator callable|null

                final public function urlCreator(?callable $urlCreator): static
{
    $new = clone $this;
    $new->urlCreator = $urlCreator;
    return $new;
}

            
urlParameterProvider() public method
public urlParameterProvider( Yiisoft\Yii\DataView\Url\UrlParameterProviderInterface $provider ): Yiisoft\Yii\DataView\ListView\ListView
$provider Yiisoft\Yii\DataView\Url\UrlParameterProviderInterface

                final public function urlParameterProvider(UrlParameterProviderInterface $provider): static
{
    $new = clone $this;
    $new->urlParameterProvider = $provider;
    return $new;
}

            
urlQueryParameters() public method

Defined in: Yiisoft\Yii\DataView\BaseListView::urlQueryParameters()

Return a new instance with query parameters of the route.

public urlQueryParameters( array $parameters ): Yiisoft\Yii\DataView\ListView\ListView
$parameters array

The query parameters of the route.

                final public function urlQueryParameters(array $parameters): static
{
    $new = clone $this;
    $new->urlConfig = $this->urlConfig->withQueryParameters($parameters);
    return $new;
}