Bitrix-D7 23.9
 
Загрузка...
Поиск...
Не найдено
Класс Columns
+ Граф наследования:Columns:

Открытые члены

 __construct (DataProvider ... $providers)
 
 getIterator ()
 
 count ()
 
 getColumn (string $id)
 
 getSelect (?array $columnIds=null, ?array $providers=null)
 
 prepareEditableColumnsValues (array $values)
 

Защищенные члены

 getProvidersColumns ()
 

Подробное описание

Columns collections.

The main task is to work with columns: reading, filtering and generating a select statement.

См. также
\Bitrix\Main\Grid\Column\DataProvider
\Bitrix\Main\Grid\Grid method createColumns

См. определение в файле columns.php строка 13

Конструктор(ы)

◆ __construct()

__construct ( DataProvider ... $providers)
Аргументы
DataProvider$providers

См. определение в файле columns.php строка 25

Методы

◆ count()

count ( )
final

@inheritDoc

Возвращает
int

См. определение в файле columns.php строка 49

◆ getColumn()

getColumn ( string $id)
final

Column by id.

Аргументы
string$id
Возвращает
Column|null

См. определение в файле columns.php строка 61

◆ getIterator()

getIterator ( )
final

@inheritDoc

Возвращает
Column[]

См. определение в файле columns.php строка 39

◆ getProvidersColumns()

getProvidersColumns ( )
finalprotected

Map of providers columns.

Возвращает
array[] in format [$providerClass => [$column, $column, ...]]

См. определение в файле columns.php строка 106

◆ getSelect()

getSelect ( ?array $columnIds = null,
?array $providers = null )

Gets a list of select names for the specified columns.

Single column can use multiple fields in a query. Necessary columns will also be returned, even if they are not specified in the arguments (taking into account filtering by providers).

All columns of all providers:

$ormSelect = $columns->getSelect();

Filter by columns (typical usage: show only visible columns):

$ormSelect = $columns->getSelect(
$grid->getVisibleColumnsIds()
);

Filter by providers (for example: grid contains columns from different tablets):

$elementSelect = $columns->getSelect(null, [
\Bitrix\Iblock\Grid\Column\ElementProvider::class,
\Bitrix\Iblock\Grid\Column\ElementPropertyProvider::class,
]);
$catalogSelect = $columns->getSelect(null, [
\Bitrix\Catalog\Grid\Column\ProductProvider::class,
\Bitrix\Catalog\Grid\Column\PriceProvider::class,
]);

And both filters:

$elementSelect = $columns->getSelect(
$grid->getVisibleColumnsIds(),
[
\Bitrix\Iblock\Grid\Column\ElementProvider::class,
\Bitrix\Iblock\Grid\Column\ElementPropertyProvider::class,
]
);
Аргументы
string[] | null$columnIdsif is null, returns all columns.
string[] | null$providersarray with provider's class full names. If filled in, the columns will be taken only from the specified providers. ATTENTION: necessary columns from other providers will NOT BE INCLUDED in the result!
Возвращает
string[]

См. определение в файле columns.php строка 177

◆ prepareEditableColumnsValues()

prepareEditableColumnsValues ( array $values)

Returns only those values that are present in the column collection and are editable.

Аргументы
array$values
Возвращает
array

Переопределяется в ProductColumns.

См. определение в файле columns.php строка 237