Abstract Class Yiisoft\Yii\DataView\BaseListView
| Inheritance | Yiisoft\Yii\DataView\BaseListView » Yiisoft\Widget\Widget |
|---|---|
| Subclasses | Yiisoft\Yii\DataView\GridView\GridView, Yiisoft\Yii\DataView\ListView\ListView |
BaseListView is an abstract base class for Yiisoft\Yii\DataView\GridView\GridView and Yiisoft\Yii\DataView\ListView\ListView only.
Psalm Types
| Name | Value |
|---|---|
| UrlArguments | array<string, scalar|\Stringable|null> |
| UrlCreator | callable |
| PageSizeConstraint | list<positive-int>|positive-int|boolean |
| PageNotFoundExceptionCallback | callable |
Protected Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $multiSort | boolean | Yiisoft\Yii\DataView\BaseListView | |
| $translationCategory | string | Yiisoft\Yii\DataView\BaseListView | |
| $translator | \Yiisoft\Translator\TranslatorInterface | A translator instance used for translations of messages. | Yiisoft\Yii\DataView\BaseListView |
| $urlConfig | Yiisoft\Yii\DataView\Url\UrlConfig | Yiisoft\Yii\DataView\BaseListView | |
| $urlCreator | Yiisoft\Yii\DataView\BaseListView | ||
| $urlParameterProvider | Yiisoft\Yii\DataView\Url\UrlParameterProviderInterface | Yiisoft\Yii\DataView\BaseListView |
Public Methods
Protected Methods
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 |
Property Details
A translator instance used for translations of messages. If it wasn't set explicitly in the constructor, a default one created automatically in \Yiisoft\Yii\DataView\createDefaultTranslator().
Method Details
| 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,
protected readonly string $translationCategory = self::DEFAULT_TRANSLATION_CATEGORY,
) {
$this->translator = $translator ?? $this->createDefaultTranslator();
$this->urlConfig = new UrlConfig();
$this->urlParameterProvider = new NullUrlParameterProvider();
}
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\BaseListView | ||
| $class | \BackedEnum|string|null |
One or more CSS class names to add. Pass |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
| public addHeaderClass( \BackedEnum|string|null $class ): Yiisoft\Yii\DataView\BaseListView | ||
| $class | \BackedEnum|string|null | |
public function addHeaderClass(BackedEnum|string|null ...$class): static
{
$new = clone $this;
Html::addCssClass($new->headerAttributes, $class);
return $new;
}
Returns a new instance with HTML content to be added before the closing container tag.
| public append( string|\Stringable $append ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Returns a new instance with the HTML attributes for container.
| public containerAttributes( array $attributes ): Yiisoft\Yii\DataView\BaseListView | ||
| $attributes | array |
Attribute values indexed by attribute names. |
final public function containerAttributes(array $attributes): static
{
$new = clone $this;
$new->containerAttributes = $attributes;
return $new;
}
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\BaseListView | ||
| $class | \BackedEnum|string|null |
One or more CSS class names to use. Pass |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
| public containerTag( string|null $tag ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
| public dataReader( \Yiisoft\Data\Reader\ReadableDataInterface $dataReader ): Yiisoft\Yii\DataView\BaseListView | ||
| $dataReader | \Yiisoft\Data\Reader\ReadableDataInterface | |
final public function dataReader(ReadableDataInterface $dataReader): static
{
$new = clone $this;
$new->dataReader = $dataReader;
return $new;
}
| public encodeHeader( boolean $encode ): Yiisoft\Yii\DataView\BaseListView | ||
| $encode | boolean | |
final public function encodeHeader(bool $encode): static
{
$new = clone $this;
$new->encodeHeader = $encode;
return $new;
}
| protected getDataReader( ): \Yiisoft\Data\Reader\ReadableDataInterface |
final protected function getDataReader(): ReadableDataInterface
{
if ($this->dataReader === null) {
throw new DataReaderNotSetException();
}
return $this->dataReader;
}
| 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;
}
| protected getNoResultsContent( ): string |
final protected function getNoResultsContent(): string
{
$text = $this->translator->translate(
$this->noResultsText,
category: $this->translationCategory,
);
return str_replace('{text}', $text, $this->noResultsTemplate);
}
Return new instance with the header for the grid.
| public header( string $content ): Yiisoft\Yii\DataView\BaseListView | ||
| $content | string |
The header of the grid. |
final public function header(string $content): static
{
$new = clone $this;
$new->header = $content;
return $new;
}
Return new instance with the HTML attributes for the header.
| public headerAttributes( array $attributes ): Yiisoft\Yii\DataView\BaseListView | ||
| $attributes | array |
Attribute values indexed by attribute names. |
final public function headerAttributes(array $attributes): static
{
$new = clone $this;
$new->headerAttributes = $attributes;
return $new;
}
| public headerClass( \BackedEnum|string|null $class ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
| public headerTag( string|null $tag ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Returns a new instance with the id of the grid view, detail view, or list view.
| public id( string $id ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
| public ignoreMissingPage( boolean $enabled ): Yiisoft\Yii\DataView\BaseListView | ||
| $enabled | boolean | |
final public function ignoreMissingPage(bool $enabled): static
{
$new = clone $this;
$new->ignoreMissingPage = $enabled;
return $new;
}
Set configuration for keyset pagination widget.
| public keysetPaginationConfig( array $config ): Yiisoft\Yii\DataView\BaseListView | ||
| $config | array |
Widget config. |
final public function keysetPaginationConfig(array $config): static
{
$new = clone $this;
$new->keysetPaginationConfig = $config;
return $new;
}
Returns a new instance with the layout of the grid view, and list view.
| public layout( string $view ): Yiisoft\Yii\DataView\BaseListView | ||
| $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:
|
final public function layout(string $view): static
{
$new = clone $this;
$new->layout = $view;
return $new;
}
| protected abstract makeFilters( ): array | ||
| return | array |
The array with format:
|
|---|---|---|
abstract protected function makeFilters(): array;
| public multiSort( boolean $enable = true ): Yiisoft\Yii\DataView\BaseListView | ||
| $enable | boolean | |
final public function multiSort(bool $enable = true): static
{
$new = clone $this;
$new->multiSort = $enable;
return $new;
}
| public noResultsTemplate( string $template ): Yiisoft\Yii\DataView\BaseListView | ||
| $template | string | |
final public function noResultsTemplate(string $template): static
{
$new = clone $this;
$new->noResultsTemplate = $template;
return $new;
}
| public noResultsText( string $text ): Yiisoft\Yii\DataView\BaseListView | ||
| $text | string | |
final public function noResultsText(string $text): static
{
$new = clone $this;
$new->noResultsText = $text;
return $new;
}
Set configuration for offset pagination widget.
| public offsetPaginationConfig( array $config ): Yiisoft\Yii\DataView\BaseListView | ||
| $config | array |
Widget config. |
final public function offsetPaginationConfig(array $config): static
{
$new = clone $this;
$new->offsetPaginationConfig = $config;
return $new;
}
| public pageNotFoundExceptionCallback( callable|null $callback ): Yiisoft\Yii\DataView\BaseListView | ||
| $callback | callable|null | |
final public function pageNotFoundExceptionCallback(?callable $callback): static
{
$new = clone $this;
$new->pageNotFoundExceptionCallback = $callback;
return $new;
}
Return a new instance with the name of argument or query parameter for page.
| public pageParameterName( string $name ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Creates a new instance with the specified page parameter type.
| public pageParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\BaseListView | ||
| $type | \Yiisoft\Yii\DataView\Url\UrlParameterType |
The new page parameter type. |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
Returns a new instance with the HTML attributes for page size wrapper tag.
| public pageSizeAttributes( array $attributes ): Yiisoft\Yii\DataView\BaseListView | ||
| $attributes | array |
Attribute values indexed by attribute names. |
final public function pageSizeAttributes(array $attributes): static
{
$new = clone $this;
$new->pageSizeAttributes = $attributes;
return $new;
}
Get a new instance with a page size constraint set.
| public pageSizeConstraint( array|boolean|integer $pageSizeConstraint ): Yiisoft\Yii\DataView\BaseListView | ||
| $pageSizeConstraint | array|boolean|integer |
Page size constraint.
|
| return | Yiisoft\Yii\DataView\BaseListView |
New instance. |
|---|---|---|
final public function pageSizeConstraint(array|int|bool $pageSizeConstraint): static
{
$new = clone $this;
$new->pageSizeConstraint = $pageSizeConstraint;
return $new;
}
Return a new instance with the name of argument or query parameter for page size.
| public pageSizeParameterName( string $name ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Creates a new instance with the specified page size parameter type.
| public pageSizeParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\BaseListView | ||
| $type | \Yiisoft\Yii\DataView\Url\UrlParameterType |
The new page size parameter type. |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
| public pageSizeTag( string|null $tag ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Returns a new instance with the page size template.
| public pageSizeTemplate( string|null $template ): Yiisoft\Yii\DataView\BaseListView | ||
| $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 The following tokens will be replaced with the corresponding values:
|
final public function pageSizeTemplate(?string $template): static
{
$new = clone $this;
$new->pageSizeTemplate = $template;
return $new;
}
| public pageSizeWidget( Yiisoft\Yii\DataView\PageSize\PageSizeWidgetInterface|null $widget ): Yiisoft\Yii\DataView\BaseListView | ||
| $widget | Yiisoft\Yii\DataView\PageSize\PageSizeWidgetInterface|null | |
final public function pageSizeWidget(?PageSizeWidgetInterface $widget): static
{
$new = clone $this;
$new->pageSizeWidget = $widget;
return $new;
}
final public function paginationWidget(?PaginationWidgetInterface $widget): static
{
$new = clone $this;
$new->paginationWidget = $widget;
return $new;
}
| protected abstract prepareOrder( array $order ): array | ||
| $order | array | |
abstract protected function prepareOrder(array $order): array;
Returns a new instance with HTML content to be added after the opening container tag.
| public prepend( string|\Stringable $prepend ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
| public previousPageParameterName( string $name ): Yiisoft\Yii\DataView\BaseListView | ||
| $name | string | |
final public function previousPageParameterName(string $name): static
{
$new = clone $this;
$new->urlConfig = $this->urlConfig->withPreviousPageParameterName($name);
return $new;
}
Creates a new instance with the specified previous page parameter type.
| public previousPageParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\BaseListView | ||
| $type | \Yiisoft\Yii\DataView\Url\UrlParameterType |
The new previous page parameter type. |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
| 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();
}
Renders the data models.
| protected abstract renderItems( (array|object)[] $items, \Yiisoft\Validator\Result $filterValidationResult, \Yiisoft\Data\Reader\ReadableDataInterface|null $preparedDataReader ): string | ||
| $items | (array|object)[] |
The data models to be rendered. |
| $filterValidationResult | \Yiisoft\Validator\Result |
The validation result of the filter. |
| $preparedDataReader | \Yiisoft\Data\Reader\ReadableDataInterface|null |
The prepared data reader, |
| return | string |
The rendering result. |
|---|---|---|
abstract protected function renderItems(
array $items,
ValidationResult $filterValidationResult,
?ReadableDataInterface $preparedDataReader,
): string;
Creates a new instance with the specified sort parameter name.
| public sortParameterName( string $name ): Yiisoft\Yii\DataView\BaseListView | ||
| $name | string |
The new sort parameter name. |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
Creates a new instance with the specified sort parameter type.
| public sortParameterType( \Yiisoft\Yii\DataView\Url\UrlParameterType $type ): Yiisoft\Yii\DataView\BaseListView | ||
| $type | \Yiisoft\Yii\DataView\Url\UrlParameterType |
The new sort parameter type. |
| return | Yiisoft\Yii\DataView\BaseListView |
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;
}
Returns a new instance with the HTML attributes for summary wrapper tag.
| public summaryAttributes( array $attributes ): Yiisoft\Yii\DataView\BaseListView | ||
| $attributes | array |
Attribute values indexed by attribute names. |
final public function summaryAttributes(array $attributes): static
{
$new = clone $this;
$new->summaryAttributes = $attributes;
return $new;
}
| public summaryTag( string|null $tag ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Returns a new instance with the summary template.
| public summaryTemplate( string|null $template ): Yiisoft\Yii\DataView\BaseListView | ||
| $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:
|
final public function summaryTemplate(?string $template): static
{
$new = clone $this;
$new->summaryTemplate = $template;
return $new;
}
Return new instance with toolbar content.
| public toolbar( string $content ): Yiisoft\Yii\DataView\BaseListView | ||
| $content | string |
The toolbar content. |
final public function toolbar(string $content): static
{
$new = clone $this;
$new->toolbar = $content;
return $new;
}
Return a new instance with arguments of the route.
| public urlArguments( array $arguments ): Yiisoft\Yii\DataView\BaseListView | ||
| $arguments | array |
Arguments of the route. |
final public function urlArguments(array $arguments): static
{
$new = clone $this;
$new->urlConfig = $this->urlConfig->withArguments($arguments);
return $new;
}
| public urlCreator( callable|null $urlCreator ): Yiisoft\Yii\DataView\BaseListView | ||
| $urlCreator | callable|null | |
final public function urlCreator(?callable $urlCreator): static
{
$new = clone $this;
$new->urlCreator = $urlCreator;
return $new;
}
| public urlParameterProvider( Yiisoft\Yii\DataView\Url\UrlParameterProviderInterface $provider ): Yiisoft\Yii\DataView\BaseListView | ||
| $provider | Yiisoft\Yii\DataView\Url\UrlParameterProviderInterface | |
final public function urlParameterProvider(UrlParameterProviderInterface $provider): static
{
$new = clone $this;
$new->urlParameterProvider = $provider;
return $new;
}
Return a new instance with query parameters of the route.
| public urlQueryParameters( array $parameters ): Yiisoft\Yii\DataView\BaseListView | ||
| $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;
}
Signup or Login in order to comment.