Class yii\grid\GridView
All Classes | Properties | Methods | Events | Constants
Inheritance | yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\base\ViewContextInterface |
Available since version | 2.0 |
**** | https://github.com/yiisoft/yii2/blob/master/framework/grid/GridView.php |
The GridView widget is used to display data in a grid.
It provides features like sorting, paging and also filtering the data.
A basic usage looks like the following:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id',
'name',
'created\_at:datetime',
// ...
],
]) ?>
2
3
4
5
6
7
8
9
The columns of the grid table are configured in terms of yii\grid\Column classes, which are configured via $columns.
The look and feel of a grid view can be customized using the large amount of properties.
For more details and usage information on GridView, see the guide article on data widgets.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$afterRow | Closure | An anonymous function that is called once AFTER rendering each data model. | yii\grid\GridView |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$beforeRow | Closure | An anonymous function that is called once BEFORE rendering each data model. | yii\grid\GridView |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. | yii\base\Component |
$caption | string | The caption of the grid table | yii\grid\GridView |
$captionOptions | array | The HTML attributes for the caption element. | yii\grid\GridView |
$columns | array | Grid column configuration. | yii\grid\GridView |
$dataColumnClass | string | The default data column class if the class name is not explicitly specified when configuring a data column. | yii\grid\GridView |
$dataProvider | yii\data\DataProviderInterface | The data provider for the view. | yii\widgets\BaseListView |
$emptyCell | string | The HTML display when the content of a cell is empty. | yii\grid\GridView |
$emptyText | string | false | The HTML content to be displayed when $dataProvider does not have any data. |
$emptyTextOptions | array | The HTML attributes for the emptyText of the list view. | yii\widgets\BaseListView |
$filterErrorOptions | array | The options for rendering every filter error message. | yii\grid\GridView |
$filterErrorSummaryOptions | array | The options for rendering the filter error summary. | yii\grid\GridView |
$filterModel | yii\base\Model | null | The model that keeps the user-entered filter data. |
$filterOnFocusOut | boolean | Whatever to apply filters on losing focus. | yii\grid\GridView |
$filterPosition | string | Whether the filters should be displayed in the grid view. | yii\grid\GridView |
$filterRowOptions | array | The HTML attributes for the filter row element. | yii\grid\GridView |
$filterSelector | string | Additional jQuery selector for selecting filter input fields | yii\grid\GridView |
$filterUrl | string | array | null |
$footerRowOptions | array | The HTML attributes for the table footer row. | yii\grid\GridView |
$formatter | array | yii\i18n\Formatter | null |
$headerRowOptions | array | The HTML attributes for the table header row. | yii\grid\GridView |
$id | string | null | ID of the widget. |
$layout | string | The layout that determines how different sections of the grid view should be organized. | yii\grid\GridView |
$options | array | The HTML attributes for the container tag of the grid view. | yii\grid\GridView |
$pager | array | The configuration for the pager widget. | yii\widgets\BaseListView |
$placeFooterAfterBody | boolean | Whether to place footer after body in DOM if $showFooter is true | yii\grid\GridView |
$rowOptions | array | Closure | The HTML attributes for the table body rows. |
$showFooter | boolean | Whether to show the footer section of the grid table. | yii\grid\GridView |
$showHeader | boolean | Whether to show the header section of the grid table. | yii\grid\GridView |
$showOnEmpty | boolean | Whether to show the grid view if $dataProvider returns no data. | yii\grid\GridView |
$sorter | array | The configuration for the sorter widget. | yii\widgets\BaseListView |
$summary | string | The HTML content to be displayed as the summary of the list view. | yii\widgets\BaseListView |
$summaryOptions | array | The HTML attributes for the summary of the list view. | yii\widgets\BaseListView |
$tableOptions | array | The HTML attributes for the grid table element. | yii\grid\GridView |
$view | yii\web\View | The view object that can be used to render views or view files. | yii\base\Widget |
$viewPath | string | The directory containing the view files for this widget. | yii\base\Widget |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
afterRun() | This method is invoked right after a widget is executed. | yii\base\Widget |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeRun() | This method is invoked right before the widget is executed. | yii\base\Widget |
begin() | Begins a widget. | yii\base\Widget |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
end() | Ends a widget. | yii\base\Widget |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getId() | Returns the ID of the widget. | yii\base\Widget |
getView() | Returns the view object that can be used to render views or view files. | yii\base\Widget |
getViewPath() | Returns the directory containing the view files for this widget. | yii\base\Widget |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the grid view. | yii\grid\GridView |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
render() | Renders a view. | yii\base\Widget |
renderCaption() | Renders the caption element. | yii\grid\GridView |
renderColumnGroup() | Renders the column group HTML. | yii\grid\GridView |
renderEmpty() | Renders the HTML content indicating that the list view has no data. | yii\widgets\BaseListView |
renderErrors() | Renders validator errors of filter model. | yii\grid\GridView |
renderFile() | Renders a view file. | yii\base\Widget |
renderFilters() | Renders the filter. | yii\grid\GridView |
renderItems() | Renders the data models for the grid view. | yii\grid\GridView |
renderPager() | Renders the pager. | yii\widgets\BaseListView |
renderSection() | Renders a section of the specified name. | yii\grid\GridView |
renderSorter() | Renders the sorter. | yii\widgets\BaseListView |
renderSummary() | Renders the summary text. | yii\widgets\BaseListView |
renderTableBody() | Renders the table body. | yii\grid\GridView |
renderTableFooter() | Renders the table footer. | yii\grid\GridView |
renderTableHeader() | Renders the table header. | yii\grid\GridView |
renderTableRow() | Renders a table row with the given data model and key. | yii\grid\GridView |
run() | Runs the widget. | yii\grid\GridView |
setId() | Sets the ID of the widget. | yii\base\Widget |
setView() | Sets the view object to be used by this widget. | yii\base\Widget |
trigger() | Triggers an event. | yii\base\Component |
widget() | Creates a widget instance and runs it. | yii\base\Widget |
Protected Methods
Method | Description | Defined By |
---|---|---|
createDataColumn() | Creates a yii\grid\DataColumn object based on a string in the format of "attribute:format:label". | yii\grid\GridView |
getClientOptions() | Returns the options for the grid view JS widget. | yii\grid\GridView |
guessColumns() | This function tries to guess the columns to show from the given data if $columns are not explicitly specified. | yii\grid\GridView |
initColumns() | Creates column objects and initializes them. | yii\grid\GridView |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_RUN | yii\base\WidgetEvent | An event raised right after executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_BEFORE_RUN | yii\base\WidgetEvent | An event raised right before executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_INIT | yii\base\Event | An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) | yii\base\Widget |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
FILTER_POS_BODY | 'body' | yii\grid\GridView | |
FILTER_POS_FOOTER | 'footer' | yii\grid\GridView | |
FILTER_POS_HEADER | 'header' | yii\grid\GridView |
Property Details
$afterRow public property
An anonymous function that is called once AFTER rendering each data model. It should have the similar signature as $rowOptions. The return result of the function will be rendered directly.
$beforeRow public property
An anonymous function that is called once BEFORE rendering each data model. It should have the similar signature as $rowOptions. The return result of the function will be rendered directly.
_
public Closure $beforeRow = null
$caption public property
The caption of the grid table
See also $captionOptions.
$captionOptions public property
The HTML attributes for the caption element.
See also:
- yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
- $caption
_
public array $captionOptions = []
$columns public property
Grid column configuration. Each array element represents the configuration for one particular grid column. For example,
[
['class' => SerialColumn::class],
[
'class' => DataColumn::class, // this line is optional
'attribute' => 'name',
'format' => 'text',
'label' => 'Name',
],
['class' => CheckboxColumn::class],
]
2
3
4
5
6
7
8
9
10
If a column is of class yii\grid\DataColumn, the "class" element can be omitted.
As a shortcut format, a string may be used to specify the configuration of a data column which only contains attribute, format, and/or label options: "attribute:format:label". For example, the above "name" column can also be specified as: "name:text:Name". Both "format" and "label" are optional. They will take default values if absent.
Using the shortcut format the configuration for columns in simple cases would look like this:
[
'id',
'amount:currency:Total Amount',
'created\_at:datetime',
]
2
3
4
5
When using a $dataProvider with active records, you can also display values from related records, e.g. the name attribute of the author relation:
// shortcut syntax
'author.name',
// full syntax
[
'attribute' => 'author.name',
// ...
]
2
3
4
5
6
7
$dataColumnClass public property
The default data column class if the class name is not explicitly specified when configuring a data column. Defaults to yii\grid\DataColumn
.
_
public string $dataColumnClass = null
$emptyCell public property
The HTML display when the content of a cell is empty. This property is used to render cells that have no defined content, e.g. empty footer or filter cells.
Note that this is not used by the yii\grid\DataColumn if a data item is null. In that case the nullDisplay property of the $formatter will be used to indicate an empty data value.
_
public string $emptyCell = ' '
$filterErrorOptions public property
The options for rendering every filter error message. This is mainly used by yii\helpers\Html::error() when rendering an error message next to every filter input field.
_
public array $filterErrorOptions = [ 'class' => 'help-block', ]
$filterErrorSummaryOptions public property
The options for rendering the filter error summary. Please refer to yii\helpers\Html::errorSummary() for more details about how to specify the options.
See also renderErrors().
_
public array $filterErrorSummaryOptions = [ 'class' => 'error-summary', ]
$filterModel public property
The model that keeps the user-entered filter data. When this property is set, the grid view will enable column-based filtering. Each data column by default will display a text field at the top that users can fill in to filter the data.
Note that in order to show an input field for filtering, a column must have its yii\grid\DataColumn::$attribute property set and the attribute should be active in the current scenario of $filterModel or have yii\grid\DataColumn::$filter set as the HTML code for the input field.
When this property is not set (null) the filtering feature is disabled.
_
public yii\base\Model|null $filterModel = null
$filterOnFocusOut public property (available since version 2.0.16)
Whatever to apply filters on losing focus. Leaves an ability to manage filters via yiiGridView JS
_
public boolean $filterOnFocusOut = true
$filterPosition public property
Whether the filters should be displayed in the grid view. Valid values include:
- FILTER_POS_HEADER: the filters will be displayed on top of each column's header cell.
- FILTER_POS_BODY: the filters will be displayed right below each column's header cell.
- FILTER_POS_FOOTER: the filters will be displayed below each column's footer cell.
_
public string $filterPosition = self::FILTER_POS_BODY
$filterRowOptions public property
The HTML attributes for the filter row element.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
_
public array $filterRowOptions = [ 'class' => 'filters', ]
$filterSelector public property
Additional jQuery selector for selecting filter input fields
_
public string $filterSelector = null
$filterUrl public property
The URL for returning the filtering result. yii\helpers\Url::to() will be called to normalize the URL. If not set, the current controller action will be used. When the user makes change to any filter input, the current filtering inputs will be appended as GET parameters to this URL.
_
public string|array|null $filterUrl = null
$footerRowOptions public property
The HTML attributes for the table footer row.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
_
public array $footerRowOptions = []
$formatter public property
The formatter used to format model attribute values into displayable texts. This can be either an instance of yii\i18n\Formatter or an configuration array for creating the yii\i18n\Formatter instance. If this property is not set, the "formatter" application component will be used.
_
public array|yii\i18n\Formatter|null $formatter = null
$headerRowOptions public property
The HTML attributes for the table header row.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
_
public array $headerRowOptions = []
$layout public property
The layout that determines how different sections of the grid view should be organized. The following tokens will be replaced with the corresponding section contents:
- {summary}: the summary section. See renderSummary().
- {errors}: the filter model error summary. See renderErrors().
- {items}: the list items. See renderItems().
- {sorter}: the sorter. See renderSorter().
- {pager}: the pager. See renderPager().
$options public property
The HTML attributes for the container tag of the grid view. The "tag" element specifies the tag name of the container element and defaults to "div".
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
$placeFooterAfterBody public property (available since version 2.0.14)
Whether to place footer after body in DOM if $showFooter is true
_
public boolean $placeFooterAfterBody = false
$rowOptions public property
The HTML attributes for the table body rows. This can be either an array specifying the common HTML attributes for all body rows, or an anonymous function that returns an array of the HTML attributes. The anonymous function will be called once for every data model returned by $dataProvider. It should have the following signature:
function ($model, $key, $index, $grid)
- $model: the current data model being rendered
- $key: the key value associated with the current data model
- $index: the zero-based index of the data model in the model array returned by $dataProvider
- $grid: the GridView object
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
_
public array|Closure $rowOptions = []
$showFooter public property
Whether to show the footer section of the grid table.
_
public boolean $showFooter = false
$showHeader public property
Whether to show the header section of the grid table.
_
public boolean $showHeader = true
$showOnEmpty public property
Whether to show the grid view if $dataProvider returns no data.
_
public boolean $showOnEmpty = true
$tableOptions public property
The HTML attributes for the grid table element.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
_
public array $tableOptions = [ 'class' => 'table table-striped table-bordered', ]
Method Details
__call() public method
Defined in: yii\base\Component::__call()
Calls the named method which is not a class method.
This method will check if any attached behavior has the named method and will execute it if available.
Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.
public | mixed | __call ( $name, $params ) |
---|---|---|
$name | string | The method name |
$params | array | Method parameters |
return | mixed | The method return value |
throws | yii\base\UnknownMethodException | when calling unknown method |
public function \_\_call($name, $params)
{
$this->ensureBehaviors();
foreach ($this->\_behaviors as $object) {
if ($object->hasMethod($name)) {
return call\_user\_func\_array([$object, $name], $params);
}
}
throw new UnknownMethodException('Calling unknown method: ' . get\_class($this) . "::$name()");
}
2
3
4
5
6
7
8
9
10
__clone() public method
Defined in: yii\base\Component::__clone()
This method is called after the object is created by cloning an existing one.
It removes all behaviors because they are attached to the old object.
public void __clone ( ) |
---|
public function \_\_clone()
{
$this->\_events = [];
$this->\_eventWildcards = [];
$this->\_behaviors = null;
}
2
3
4
5
6
__construct() public method
Defined in: yii\base\BaseObject::__construct()
Constructor.
The default implementation does two things:
- Initializes the object with the given configuration $config.
- Call init().
If this method is overridden in a child class, it is recommended that
- the last parameter of the constructor is a configuration array, like $config here.
- call the parent implementation at the end of the constructor.
public | void | __construct ( $config = [] ) |
---|---|---|
$config | array | Name-value pairs that will be used to initialize the object properties |
public function __construct($config = [])
{
if (!empty($config)) {
Yii::configure($this, $config);
}
$this->init();
}
2
3
4
5
6
7
__get() public method
Defined in: yii\base\Component::__get()
Returns the value of a component property.
This method will check in the following order and act accordingly:
- a property defined by a getter: return the getter result
- a property of a behavior: return the behavior property value
Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $component->property;.
See also __set().
public | mixed | __get ( $name ) |
---|---|---|
$name | string | The property name |
return | mixed | The property value or the value of a behavior's property |
throws | yii\base\UnknownPropertyException | if the property is not defined |
throws | yii\base\InvalidCallException | if the property is write-only. |
public function \_\_get($name)
{
$getter = 'get' . $name;
if (method\_exists($this, $getter)) {
// read property, e.g. getName()
return $this->$getter();
}
// behavior property
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->canGetProperty($name)) {
return $behavior->$name;
}
}
if (method\_exists($this, 'set' . $name)) {
throw new InvalidCallException('Getting write-only property: ' . get\_class($this) . '::' . $name);
}
throw new UnknownPropertyException('Getting unknown property: ' . get\_class($this) . '::' . $name);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
__isset() public method
Defined in: yii\base\Component::__isset()
Checks if a property is set, i.e. defined and not null.
This method will check in the following order and act accordingly:
- a property defined by a setter: return whether the property is set
- a property of a behavior: return whether the property is set
- return false for non existing properties
Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($component->property).
See also https://www.php.net/manual/en/function.isset.php.
public | boolean | __isset ( $name ) |
---|---|---|
$name | string | The property name or the event name |
return | boolean | Whether the named property is set |
public function __isset($name)
{
$getter = 'get' . $name;
if (method\_exists($this, $getter)) {
return $this->$getter() !== null;
}
// behavior property
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->canGetProperty($name)) {
return $behavior->$name !== null;
}
}
return false;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
__set() public method
Defined in: yii\base\Component::__set()
Sets the value of a component property.
This method will check in the following order and act accordingly:
- a property defined by a setter: set the property value
- an event in the format of "on xyz": attach the handler to the event "xyz"
- a behavior in the format of "as xyz": attach the behavior named as "xyz"
- a property of a behavior: set the behavior property value
Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $component->property = $value;.
See also __get().
public | void | __set ( $name, $value ) |
---|---|---|
$name | string | The property name or the event name |
$value | mixed | The property value |
throws | yii\base\UnknownPropertyException | if the property is not defined |
throws | yii\base\InvalidCallException | if the property is read-only. |
public function __set($name, $value)
{
$setter = 'set' . $name;
if (method\_exists($this, $setter)) {
// set property
$this->$setter($value);
return;
} elseif (strncmp($name, 'on ', 3) === 0) {
// on event: attach event handler
$this->on(trim(substr($name, 3)), $value);
return;
} elseif (strncmp($name, 'as ', 3) === 0) {
// as behavior: attach behavior
$name = trim(substr($name, 3));
$this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
return;
}
// behavior property
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->canSetProperty($name)) {
$behavior->$name = $value;
return;
}
}
if (method\_exists($this, 'get' . $name)) {
throw new InvalidCallException('Setting read-only property: ' . get\_class($this) . '::' . $name);
}
throw new UnknownPropertyException('Setting unknown property: ' . get\_class($this) . '::' . $name);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
__unset() public method
Defined in: yii\base\Component::__unset()
Sets a component property to be null.
This method will check in the following order and act accordingly:
- a property defined by a setter: set the property value to be null
- a property of a behavior: set the property value to be null
Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($component->property).
See also https://www.php.net/manual/en/function.unset.php.
public | void | __unset ( $name ) |
---|---|---|
$name | string | The property name |
throws | yii\base\InvalidCallException | if the property is read only. |
public function __unset($name)
{
$setter = 'set' . $name;
if (method\_exists($this, $setter)) {
$this->$setter(null);
return;
}
// behavior property
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->canSetProperty($name)) {
$behavior->$name = null;
return;
}
}
throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get\_class($this) . '::' . $name);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
afterRun() public method (available since version 2.0.11)
Defined in: yii\base\Widget::afterRun()
This method is invoked right after a widget is executed.
The method will trigger the EVENT_AFTER_RUN event. The return value of the method will be used as the widget return value.
If you override this method, your code should look like the following:
public function afterRun($result)
{
$result = parent::afterRun($result);
// your custom code here
return $result;
}
2
3
4
5
6
public | mixed | afterRun ( $result ) |
---|---|---|
$result | mixed | The widget return result. |
return | mixed | The processed widget result. |
public function afterRun($result)
{
$event = new WidgetEvent();
$event->result = $result;
$this->trigger(self::EVENT\_AFTER\_RUN, $event);
return $event->result;
}
2
3
4
5
6
7
attachBehavior() public method
Defined in: yii\base\Component::attachBehavior()
Attaches a behavior to this component.
This method will create the behavior object based on the given configuration. After that, the behavior object will be attached to this component by calling the yii\base\Behavior::attach() method.
See also detachBehavior().
public | yii\base\Behavior | attachBehavior ( $name, $behavior ) |
---|---|---|
$name | string | The name of the behavior. |
$behavior | string | array |
return | yii\base\Behavior | The behavior object |
public function attachBehavior($name, $behavior)
{
$this->ensureBehaviors();
return $this->attachBehaviorInternal($name, $behavior);
}
2
3
4
5
attachBehaviors() public method
Defined in: yii\base\Component::attachBehaviors()
Attaches a list of behaviors to the component.
Each behavior is indexed by its name and should be a yii\base\Behavior object, a string specifying the behavior class, or an configuration array for creating the behavior.
See also attachBehavior().
public | void | attachBehaviors ( $behaviors ) |
---|---|---|
$behaviors | array | List of behaviors to be attached to the component |
public function attachBehaviors($behaviors)
{
$this->ensureBehaviors();
foreach ($behaviors as $name => $behavior) {
$this->attachBehaviorInternal($name, $behavior);
}
}
2
3
4
5
6
7
beforeRun() public method (available since version 2.0.11)
Defined in: yii\base\Widget::beforeRun()
This method is invoked right before the widget is executed.
The method will trigger the EVENT_BEFORE_RUN event. The return value of the method will determine whether the widget should continue to run.
When overriding this method, make sure you call the parent implementation like the following:
public function beforeRun()
{
if (!parent::beforeRun()) {
return false;
}
// your custom code here
return true; // or false to not run the widget
}
2
3
4
5
6
7
8
public | boolean | beforeRun ( ) |
---|---|---|
return | boolean | Whether the widget should continue to be executed. |
public function beforeRun()
{
$event = new WidgetEvent();
$this->trigger(self::EVENT\_BEFORE\_RUN, $event);
return $event->isValid;
}
2
3
4
5
6
begin() public static method
Defined in: yii\base\Widget::begin()
Begins a widget.
This method creates an instance of the calling class. It will apply the configuration to the created instance. A matching end() call should be called later. As some widgets may use output buffering, the end() call should be made in the same view to avoid breaking the nesting of output buffers.
See also end().
public | static | begin ( $config = [] ) |
---|---|---|
$config | array | Name-value pairs that will be used to initialize the object properties |
return | yii\base\Widget | The newly created widget instance |
public static function begin($config = [])
{
$config['class'] = get\_called\_class();
/\* @var $widget Widget \*/
$widget = Yii::createObject($config);
self::$stack[] = $widget;
return $widget;
}
2
3
4
5
6
7
8
behaviors() public method
Defined in: yii\base\Component::behaviors()
Returns a list of behaviors that this component should behave as.
Child classes may override this method to specify the behaviors they want to behave as.
The return value of this method should be an array of behavior objects or configurations indexed by behavior names. A behavior configuration can be either a string specifying the behavior class or an array of the following structure:
'behaviorName' => [
'class' => 'BehaviorClass',
'property1' => 'value1',
'property2' => 'value2',
]
2
3
4
5
Note that a behavior class must extend from yii\base\Behavior. Behaviors can be attached using a name or anonymously. When a name is used as the array key, using this name, the behavior can later be retrieved using getBehavior() or be detached using detachBehavior(). Anonymous behaviors can not be retrieved or detached.
Behaviors declared in this method will be attached to the component automatically (on demand).
public | array | behaviors () |
---|---|---|
return | array | The behavior configurations. |
public function behaviors()
{
return [];
}
2
3
4
canGetProperty() public method
Defined in: yii\base\Component::canGetProperty()
Returns a value indicating whether a property can be read.
A property can be read if:
- the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when $checkVars is true);
- an attached behavior has a readable property of the given name (when $checkBehaviors is true).
See also canSetProperty().
public | boolean | canGetProperty ($name, $checkVars = true, $checkBehaviors = true) |
---|---|---|
$name | string | The property name |
$checkVars | boolean | Whether to treat member variables as properties |
$checkBehaviors | boolean | Whether to treat behaviors' properties as properties of this component |
return | boolean | Whether the property can be read |
public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
if (method\_exists($this, 'get' . $name) || $checkVars && property\_exists($this, $name)) {
return true;
} elseif ($checkBehaviors) {
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->canGetProperty($name, $checkVars)) {
return true;
}
}
}
return false;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
canSetProperty() public method
Defined in: yii\base\Component::canSetProperty()
Returns a value indicating whether a property can be set.
A property can be written if:
- the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when $checkVars is true);
- an attached behavior has a writable property of the given name (when $checkBehaviors is true).
See also canGetProperty().
public | boolean | canSetProperty ($name, $checkVars = true, $checkBehaviors = true) |
---|---|---|
$name | string | The property name |
$checkVars | boolean | Whether to treat member variables as properties |
$checkBehaviors | boolean | Whether to treat behaviors' properties as properties of this component |
return | boolean | Whether the property can be written |
public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
if (method\_exists($this, 'set' . $name) || $checkVars && property\_exists($this, $name)) {
return true;
} elseif ($checkBehaviors) {
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->canSetProperty($name, $checkVars)) {
return true;
}
}
}
return false;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
className() public static method
Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.
Defined in: yii\base\BaseObject::className()
Returns the fully qualified name of this class.
public static | string | className ( ) |
---|---|---|
return | string | The fully qualified name of this class. |
public static function className()
{
return get\_called\_class();
}
2
3
4
createDataColumn() protected method
Creates a yii\grid\DataColumn object based on a string in the format of "attribute:format:label".
protected | yii\grid\DataColumn | createDataColumn ( $text ) |
---|---|---|
$text | string | The column specification string |
return | yii\grid\DataColumn | The column instance |
throws | yii\base\InvalidConfigException | if the column specification is invalid |
protected function createDataColumn($text)
{
if (!preg\_match('/^([^:]+)(:(\w\*))?(:(.\*))?$/', $text, $matches)) {
throw new InvalidConfigException('The column must be specified in the format of "attribute", "attribute:format" or "attribute:format:label"');
}
return Yii::createObject([
'class' => $this->dataColumnClass ?: DataColumn::className(),
'grid' => $this,
'attribute' => $matches[1],
'format' => isset($matches[3]) ? $matches[3] : 'text',
'label' => isset($matches[5]) ? $matches[5] : null,
]);
}
2
3
4
5
6
7
8
9
10
11
12
13
detachBehavior() public method
Defined in: yii\base\Component::detachBehavior()
Detaches a behavior from the component.
The behavior's yii\base\Behavior::detach() method will be invoked.
_
public yii\base\Behavior | null detachBehavior ( $name )
$name | string | The behavior's name. |
---|---|---|
return | yii\base\Behavior\ null | The detached behavior. Null if the behavior does not exist. |
public function detachBehavior($name)
{
$this->ensureBehaviors();
if (isset($this->\_behaviors[$name])) {
$behavior = $this->\_behaviors[$name];
unset($this->\_behaviors[$name]);
$behavior->detach();
return $behavior;
}
return null;
}
2
3
4
5
6
7
8
9
10
11
detachBehaviors() public method
Defined in: yii\base\Component::detachBehaviors()
Detaches all behaviors from the component.
public void detachBehaviors ( ) |
---|
public function detachBehaviors()
{
$this->ensureBehaviors();
foreach ($this->\_behaviors as $name => $behavior) {
$this->detachBehavior($name);
}
}
2
3
4
5
6
7
end() public static method
Defined in: yii\base\Widget::end()
Ends a widget.
Note that the rendering result of the widget is directly echoed out.
See also begin().
public | static | end ( ) |
---|---|---|
return | yii\base\Widget | The widget instance that is ended. |
throws | yii\base\InvalidCallException | if begin() and end() calls are not properly nested |
public static function end()
{
if (!empty(self::$stack)) {
$widget = array\_pop(self::$stack);
$calledClass = get\_called\_class();
if (Yii::$container->has($calledClass) && isset(Yii::$container->getDefinitions()[$calledClass]['class'])) {
$calledClass = Yii::$container->getDefinitions()[$calledClass]['class'];
}
if (get\_class($widget) === $calledClass) {
/\* @var $widget Widget \*/
if ($widget->beforeRun()) {
$result = $widget->run();
$result = $widget->afterRun($result);
echo $result;
}
return $widget;
}
throw new InvalidCallException('Expecting end() of ' . get\_class($widget) . ', found ' . get\_called\_class());
}
throw new InvalidCallException('Unexpected ' . get\_called\_class() . '::end() call. A matching begin() is not found.');
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ensureBehaviors() public method
Defined in: yii\base\Component::ensureBehaviors()
Makes sure that the behaviors declared in behaviors() are attached to this component.
public void ensureBehaviors ( ) |
---|
public function ensureBehaviors()
{
if ($this->\_behaviors === null) {
$this->\_behaviors = [];
foreach ($this->behaviors() as $name => $behavior) {
$this->attachBehaviorInternal($name, $behavior);
}
}
}
2
3
4
5
6
7
8
9
getBehavior() public method
Defined in: yii\base\Component::getBehavior()
Returns the named behavior object.
_
public yii\base\Behavior|null getBehavior ( $name )
$name | string | The behavior name |
---|---|---|
return | yii\base\Behavior\ null | The behavior object, or null if the behavior does not exist |
public function getBehavior($name)
{
$this->ensureBehaviors();
return isset($this->\_behaviors[$name]) ? $this->\_behaviors[$name] : null;
}
2
3
4
5
getBehaviors() public method
Defined in: yii\base\Component::getBehaviors()
Returns all behaviors attached to this component.
public | yii\base\Behavior[] | getBehaviors () |
---|---|---|
return | yii\base\Behavior[] | List of behaviors attached to this component |
public function getBehaviors()
{
$this->ensureBehaviors();
return $this->\_behaviors;
}
2
3
4
5
getClientOptions() protected method
Returns the options for the grid view JS widget.
protected | array | getClientOptions () |
---|---|---|
return | array | The options |
protected function getClientOptions()
{
$filterUrl = isset($this->filterUrl) ? $this->filterUrl : Yii::$app->request->url;
$id = $this->filterRowOptions['id'];
$filterSelector = "#$id input, #$id select";
if (isset($this->filterSelector)) {
$filterSelector .= ', ' . $this->filterSelector;
}
return [
'filterUrl' => Url::to($filterUrl),
'filterSelector' => $filterSelector,
];
}
2
3
4
5
6
7
8
9
10
11
12
13
getId() public method
Defined in: yii\base\Widget::getId()
Returns the ID of the widget.
public | string\ null | getId ( $autoGenerate = true ) |
---|---|---|
$autoGenerate | boolean | Whether to generate an ID if it is not set previously |
return | string\ null | ID of the widget. |
public function getId($autoGenerate = true)
{
if ($autoGenerate && $this->\_id === null) {
$this->\_id = static::$autoIdPrefix . static::$counter++;
}
return $this->\_id;
}
2
3
4
5
6
7
getView() public method
Defined in: yii\base\Widget::getView()
Returns the view object that can be used to render views or view files.
The render() and renderFile() methods will use this view object to implement the actual view rendering. If not set, it will default to the "view" application component.
public | yii\web\View | getView () |
---|---|---|
return | yii\web\View | The view object that can be used to render views or view files. |
public function getView()
{
if ($this->\_view === null) {
$this->\_view = Yii::$app->getView();
}
return $this->\_view;
}
2
3
4
5
6
7
getViewPath() public method
Defined in: yii\base\Widget::getViewPath()
Returns the directory containing the view files for this widget.
The default implementation returns the 'views' subdirectory under the directory containing the widget class file.
public | string | getViewPath () |
---|---|---|
return | string | The directory containing the view files for this widget. |
public function getViewPath()
{
$class = new ReflectionClass($this);
return dirname($class->getFileName()) . DIRECTORY\_SEPARATOR . 'views';
}
2
3
4
5
guessColumns() protected method
This function tries to guess the columns to show from the given data if $columns are not explicitly specified.
protected void guessColumns ( ) |
---|
protected function guessColumns()
{
$models = $this->dataProvider->getModels();
$model = reset($models);
if (is\_array($model) || is\_object($model)) {
foreach ($model as $name => $value) {
if ($value === null || is\_scalar($value) || is\_callable([$value, '\_\_toString'])) {
$this->columns[] = (string) $name;
}
}
}
}
2
3
4
5
6
7
8
9
10
11
12
hasEventHandlers() public method
Defined in: yii\base\Component::hasEventHandlers()
Returns a value indicating whether there is any handler attached to the named event.
public | boolean | hasEventHandlers ( $name ) |
---|---|---|
$name | string | The event name |
return | boolean | Whether there is any handler attached to the event. |
public function hasEventHandlers($name)
{
$this->ensureBehaviors();
if (!empty($this->\_events[$name])) {
return true;
}
foreach ($this->\_eventWildcards as $wildcard => $handlers) {
if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
return true;
}
}
return Event::hasHandlers($this, $name);
}
2
3
4
5
6
7
8
9
10
11
12
13
hasMethod() public method
Defined in: yii\base\Component::hasMethod()
Returns a value indicating whether a method is defined.
A method is defined if:
- the class has a method with the specified name
- an attached behavior has a method with the given name (when $checkBehaviors is true).
public | boolean | hasMethod ( $name, $checkBehaviors = true ) |
---|---|---|
$name | string | The property name |
$checkBehaviors | boolean | Whether to treat behaviors' methods as methods of this component |
return | boolean | Whether the method is defined |
public function hasMethod($name, $checkBehaviors = true)
{
if (method\_exists($this, $name)) {
return true;
} elseif ($checkBehaviors) {
$this->ensureBehaviors();
foreach ($this->\_behaviors as $behavior) {
if ($behavior->hasMethod($name)) {
return true;
}
}
}
return false;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
hasProperty() public method
Defined in: yii\base\Component::hasProperty()
Returns a value indicating whether a property is defined for this component.
A property is defined if:
- the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when $checkVars is true);
- an attached behavior has a property of the given name (when $checkBehaviors is true).
See also:
public | boolean | hasProperty ( $name, $checkVars = true, $checkBehaviors = true ) |
---|---|---|
$name | string | The property name |
$checkVars | boolean | Whether to treat member variables as properties |
$checkBehaviors | boolean | Whether to treat behaviors' properties as properties of this component |
return | boolean | Whether the property is defined |
public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}
2
3
4
init() public method
Initializes the grid view.
This method will initialize required property values and instantiate $columns objects.
public void init ( ) |
---|
public function init()
{
parent::init();
if ($this->formatter === null) {
$this->formatter = Yii::$app->getFormatter();
} elseif (is\_array($this->formatter)) {
$this->formatter = Yii::createObject($this->formatter);
}
if (!$this->formatter instanceof Formatter) {
throw new InvalidConfigException('The "formatter" property must be either a Format object or a configuration array.');
}
if (!isset($this->filterRowOptions['id'])) {
$this->filterRowOptions['id'] = $this->options['id'] . '-filters';
}
$this->initColumns();
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
initColumns() protected method
Creates column objects and initializes them.
protected void initColumns ( ) |
---|
protected function initColumns()
{
if (empty($this->columns)) {
$this->guessColumns();
}
foreach ($this->columns as $i => $column) {
if (is\_string($column)) {
$column = $this->createDataColumn($column);
} else {
$column = Yii::createObject(array\_merge([
'class' => $this->dataColumnClass ?: DataColumn::className(),
'grid' => $this,
], $column));
}
if (!$column->visible) {
unset($this->columns[$i]);
continue;
}
$this->columns[$i] = $column;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
off() public method
Defined in: yii\base\Component::off()
Detaches an existing event handler from this component.
This method is the opposite of on().
Note: in case wildcard pattern is passed for event name, only the handlers registered with this wildcard will be removed, while handlers registered with plain names matching this wildcard will remain.
See also on().
public | boolean | off ( $name, $handler = null ) |
---|---|---|
$name | string | Event name |
$handler | callable | null |
return | boolean | If a handler is found and detached |
public function off($name, $handler = null)
{
$this->ensureBehaviors();
if (empty($this->\_events[$name]) && empty($this->\_eventWildcards[$name])) {
return false;
}
if ($handler === null) {
unset($this->\_events[$name], $this->\_eventWildcards[$name]);
return true;
}
$removed = false;
// plain event names
if (isset($this->\_events[$name])) {
foreach ($this->\_events[$name] as $i => $event) {
if ($event[0] === $handler) {
unset($this->\_events[$name][$i]);
$removed = true;
}
}
if ($removed) {
$this->\_events[$name] = array\_values($this->\_events[$name]);
return true;
}
}
// wildcard event names
if (isset($this->\_eventWildcards[$name])) {
foreach ($this->\_eventWildcards[$name] as $i => $event) {
if ($event[0] === $handler) {
unset($this->\_eventWildcards[$name][$i]);
$removed = true;
}
}
if ($removed) {
$this->\_eventWildcards[$name] = array\_values($this->\_eventWildcards[$name]);
// remove empty wildcards to save future redundant regex checks:
if (empty($this->\_eventWildcards[$name])) {
unset($this->\_eventWildcards[$name]);
}
}
}
return $removed;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
on() public method
Defined in: yii\base\Component::on()
Attaches an event handler to an event.
The event handler must be a valid PHP callback. The following are some examples:
function ($event) { ... } // anonymous function
[$object, 'handleClick'] // $object->handleClick()
['Page', 'handleClick'] // Page::handleClick()
'handleClick' // global function handleClick()
2
3
4
The event handler must be defined with the following signature,
function ($event)
where $event
is an yii\base\Event object which includes parameters associated with the event.
Since 2.0.14 you can specify event name as a wildcard pattern:
$component->on('event.group.\*', function ($event) {
Yii::trace($event->name . ' is triggered.');
});
2
3
See also off().
public | void | on( $name, $handler, $data = null, $append = true ) |
---|---|---|
$name | string | The event name |
$handler | callable | The event handler |
$data | mixed | The data to be passed to the event handler when the event is triggered. When the event handler is invoked, this data can be accessed via yii\base\Event::$data. |
$append | boolean | Whether to append new event handler to the end of the existing handler list. If false, the new handler will be inserted at the beginning of the existing handler list. |
public function on($name, $handler, $data = null, $append = true)
{
$this->ensureBehaviors();
if (strpos($name, '\*') !== false) {
if ($append || empty($this->\_eventWildcards[$name])) {
$this->\_eventWildcards[$name][] = [$handler, $data];
} else {
array\_unshift($this->\_eventWildcards[$name], [$handler, $data]);
}
return;
}
if ($append || empty($this->\_events[$name])) {
$this->\_events[$name][] = [$handler, $data];
} else {
array\_unshift($this->\_events[$name], [$handler, $data]);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
render() public method
Defined in: yii\base\Widget::render()
Renders a view.
The view to be rendered can be specified in one of the following formats:
- path alias (e.g. "@app/views/site/index");
- absolute path within application (e.g. "//site/index"): the view name starts with double slashes. The actual view file will be looked for under the view path of the application.
- absolute path within module (e.g. "/site/index"): the view name starts with a single slash. The actual view file will be looked for under the view path of the currently active module.
- relative path (e.g. "index"): the actual view file will be looked for under $viewPath.
If the view name does not contain a file extension, it will use the default one .php.
public | string | render ( $view, $params = [] ) |
---|---|---|
$view | string | The view name. |
$params | array | The parameters (name-value pairs) that should be made available in the view. |
return | string | The rendering result. |
throws | yii\base\InvalidArgumentException | if the view file does not exist. |
public function render($view, $params = [])
{
return $this->getView()->render($view, $params, $this);
}
2
3
4
renderCaption() public method
Renders the caption element.
public | boolean | string renderCaption () |
---|---|---|
return | boolean\ string | The rendered caption element or false if no caption element should be rendered. |
public function renderCaption()
{
if (!empty($this->caption)) {
return Html::tag('caption', $this->caption, $this->captionOptions);
}
return false;
}
2
3
4
5
6
7
renderColumnGroup() public method
Renders the column group HTML.
public | boolean\ string | renderColumnGroup () |
---|---|---|
return | boolean | string |
public function renderColumnGroup()
{
foreach ($this->columns as $column) {
/\* @var $column Column \*/
if (!empty($column->options)) {
$cols = [];
foreach ($this->columns as $col) {
$cols[] = Html::tag('col', '', $col->options);
}
return Html::tag('colgroup', implode("\n", $cols));
}
}
return false;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
renderEmpty() public method
Defined in: yii\widgets\BaseListView::renderEmpty()
Renders the HTML content indicating that the list view has no data.
See also $emptyText.
public | string | renderEmpty () |
---|---|---|
return | string | The rendering result |
public function renderEmpty()
{
if ($this->emptyText === false) {
return '';
}
$options = $this->emptyTextOptions;
$tag = ArrayHelper::remove($options, 'tag', 'div');
return Html::tag($tag, $this->emptyText, $options);
}
2
3
4
5
6
7
8
9
renderErrors() public method
Renders validator errors of filter model.
public | string | renderErrors () |
---|---|---|
return | string | The rendering result. |
public function renderErrors()
{
if ($this->filterModel instanceof Model && $this->filterModel->hasErrors()) {
return Html::errorSummary($this->filterModel, $this->filterErrorSummaryOptions);
}
return '';
}
2
3
4
5
6
7
renderFile() public method
Defined in: yii\base\Widget::renderFile()
Renders a view file.
public | string | renderFile ( $file, $params = [] ) |
---|---|---|
$file | string | The view file to be rendered. This can be either a file path or a path alias. |
$params | array | The parameters (name-value pairs) that should be made available in the view. |
return | string | The rendering result. |
throws | yii\base\InvalidArgumentException | if the view file does not exist. |
public function renderFile($file, $params = [])
{
return $this->getView()->renderFile($file, $params, $this);
}
2
3
4
renderFilters() public method
Renders the filter.
public | string | renderFilters () |
---|---|---|
return | string | The rendering result. |
public function renderFilters()
{
if ($this->filterModel !== null) {
$cells = [];
foreach ($this->columns as $column) {
/\* @var $column Column \*/
$cells[] = $column->renderFilterCell();
}
return Html::tag('tr', implode('', $cells), $this->filterRowOptions);
}
return '';
}
2
3
4
5
6
7
8
9
10
11
12
renderItems() public method
Renders the data models for the grid view.
public | string | renderItems () |
---|---|---|
return | string | The HTML code of table |
public function renderItems()
{
$caption = $this->renderCaption();
$columnGroup = $this->renderColumnGroup();
$tableHeader = $this->showHeader ? $this->renderTableHeader() : false;
$tableBody = $this->renderTableBody();
$tableFooter = false;
$tableFooterAfterBody = false;
if ($this->showFooter) {
if ($this->placeFooterAfterBody) {
$tableFooterAfterBody = $this->renderTableFooter();
} else {
$tableFooter = $this->renderTableFooter();
}
}
$content = array\_filter([
$caption,
$columnGroup,
$tableHeader,
$tableFooter,
$tableBody,
$tableFooterAfterBody,
]);
return Html::tag('table', implode("\n", $content), $this->tableOptions);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
renderPager() public method
Defined in: yii\widgets\BaseListView::renderPager()
Renders the pager.
public | string | renderPager () |
---|---|---|
return | string | The rendering result |
public function renderPager()
{
$pagination = $this->dataProvider->getPagination();
if ($pagination === false || $this->dataProvider->getCount() <= 0) {
return '';
}
/\* @var $class LinkPager \*/
$pager = $this->pager;
$class = ArrayHelper::remove($pager, 'class', LinkPager::className());
$pager['pagination'] = $pagination;
$pager['view'] = $this->getView();
return $class::widget($pager);
}
2
3
4
5
6
7
8
9
10
11
12
13
renderSection() public method
Renders a section of the specified name.
If the named section is not supported, false will be returned.
public | string\ boolean | renderSection ( $name ) |
---|---|---|
$name | string | The section name, e.g., {summary}, {items}. |
return | string\ boolean | The rendering result of the section, or false if the named section is not supported. |
public function renderSection($name)
{
switch ($name) {
case '{errors}':
return $this->renderErrors();
default:
return parent::renderSection($name);
}
}
2
3
4
5
6
7
8
9
renderSorter() public method
Defined in: yii\widgets\BaseListView::renderSorter()
Renders the sorter.
public | string | renderSorter () |
---|---|---|
return | string | The rendering result |
public function renderSorter()
{
$sort = $this->dataProvider->getSort();
if ($sort === false || empty($sort->attributes) || $this->dataProvider->getCount() <= 0) {
return '';
}
/\* @var $class LinkSorter \*/
$sorter = $this->sorter;
$class = ArrayHelper::remove($sorter, 'class', LinkSorter::className());
$sorter['sort'] = $sort;
$sorter['view'] = $this->getView();
return $class::widget($sorter);
}
2
3
4
5
6
7
8
9
10
11
12
13
renderSummary() public method
Defined in: yii\widgets\BaseListView::renderSummary()
Renders the summary text.
public void renderSummary ( ) |
---|
public function renderSummary()
{
$count = $this->dataProvider->getCount();
if ($count <= 0) {
return '';
}
$summaryOptions = $this->summaryOptions;
$tag = ArrayHelper::remove($summaryOptions, 'tag', 'div');
if (($pagination = $this->dataProvider->getPagination()) !== false) {
$totalCount = $this->dataProvider->getTotalCount();
$begin = $pagination->getPage() \* $pagination->pageSize + 1;
$end = $begin + $count - 1;
if ($begin > $end) {
$begin = $end;
}
$page = $pagination->getPage() + 1;
$pageCount = $pagination->pageCount;
if (($summaryContent = $this->summary) === null) {
return Html::tag($tag, Yii::t('yii', 'Showing <b>{begin, number}-{end, number}</b> of <b>{totalCount, number}</b> {totalCount, plural, one{item} other{items}}.', [
'begin' => $begin,
'end' => $end,
'count' => $count,
'totalCount' => $totalCount,
'page' => $page,
'pageCount' => $pageCount,
]), $summaryOptions);
}
} else {
$begin = $page = $pageCount = 1;
$end = $totalCount = $count;
if (($summaryContent = $this->summary) === null) {
return Html::tag($tag, Yii::t('yii', 'Total <b>{count, number}</b> {count, plural, one{item} other{items}}.', [
'begin' => $begin,
'end' => $end,
'count' => $count,
'totalCount' => $totalCount,
'page' => $page,
'pageCount' => $pageCount,
]), $summaryOptions);
}
}
if ($summaryContent === '') {
return '';
}
return Html::tag($tag, Yii::$app->getI18n()->format($summaryContent, [
'begin' => $begin,
'end' => $end,
'count' => $count,
'totalCount' => $totalCount,
'page' => $page,
'pageCount' => $pageCount,
], Yii::$app->language), $summaryOptions);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
renderTableBody() public method
Renders the table body.
public | string | renderTableBody () |
---|---|---|
return | string | The rendering result. |
public function renderTableBody()
{
$models = array\_values($this->dataProvider->getModels());
$keys = $this->dataProvider->getKeys();
$rows = [];
foreach ($models as $index => $model) {
$key = $keys[$index];
if ($this->beforeRow !== null) {
$row = call\_user\_func($this->beforeRow, $model, $key, $index, $this);
if (!empty($row)) {
$rows[] = $row;
}
}
$rows[] = $this->renderTableRow($model, $key, $index);
if ($this->afterRow !== null) {
$row = call\_user\_func($this->afterRow, $model, $key, $index, $this);
if (!empty($row)) {
$rows[] = $row;
}
}
}
if (empty($rows) && $this->emptyText !== false) {
$colspan = count($this->columns);
return "<tbody>\n<tr><td colspan=\"$colspan\">" . $this->renderEmpty() . "</td></tr>\n</tbody>";
}
return "<tbody>\n" . implode("\n", $rows) . "\n</tbody>";
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
renderTableFooter() public method
Renders the table footer.
public | string | renderTableFooter () |
---|---|---|
return | string | The rendering result. |
public function renderTableFooter()
{
$cells = [];
foreach ($this->columns as $column) {
/\* @var $column Column \*/
$cells[] = $column->renderFooterCell();
}
$content = Html::tag('tr', implode('', $cells), $this->footerRowOptions);
if ($this->filterPosition === self::FILTER\_POS\_FOOTER) {
$content .= $this->renderFilters();
}
return "<tfoot>\n" . $content . "\n</tfoot>";
}
2
3
4
5
6
7
8
9
10
11
12
13
renderTableHeader() public method
Renders the table header.
public | string | renderTableHeader () |
---|---|---|
return | string | The rendering result. |
public function renderTableHeader()
{
$cells = [];
foreach ($this->columns as $column) {
/\* @var $column Column \*/
$cells[] = $column->renderHeaderCell();
}
$content = Html::tag('tr', implode('', $cells), $this->headerRowOptions);
if ($this->filterPosition === self::FILTER\_POS\_HEADER) {
$content = $this->renderFilters() . $content;
} elseif ($this->filterPosition === self::FILTER\_POS\_BODY) {
$content .= $this->renderFilters();
}
return "<thead>\n" . $content . "\n</thead>";
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
renderTableRow() public method
Renders a table row with the given data model and key.
public | string | renderTableRow ( $model, $key, $index ) |
---|---|---|
$model | mixed | The data model to be rendered |
$key | mixed | The key associated with the data model |
$index | integer | The zero-based index of the data model among the model array returned by $dataProvider. |
return | string | The rendering result |
public function renderTableRow($model, $key, $index)
{
$cells = [];
/\* @var $column Column \*/
foreach ($this->columns as $column) {
$cells[] = $column->renderDataCell($model, $key, $index);
}
if ($this->rowOptions instanceof Closure) {
$options = call\_user\_func($this->rowOptions, $model, $key, $index, $this);
} else {
$options = $this->rowOptions;
}
$options['data-key'] = is\_array($key) ? json\_encode($key) : (string) $key;
return Html::tag('tr', implode('', $cells), $options);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
run() public method
Runs the widget.
public void run ( ) |
---|
public function run()
{
$view = $this->getView();
GridViewAsset::register($view);
$id = $this->options['id'];
$options = Json::htmlEncode(array\_merge($this->getClientOptions(), ['filterOnFocusOut' => $this->filterOnFocusOut]));
$view->registerJs("jQuery('#$id').yiiGridView($options);");
parent::run();
}
2
3
4
5
6
7
8
9
setId() public method
Defined in: yii\base\Widget::setId()
Sets the ID of the widget.
public | void | setId ( $value ) |
---|---|---|
$value | string | Id of the widget. |
public function setId($value)
{
$this->\_id = $value;
}
2
3
4
setView() public method
Defined in: yii\base\Widget::setView()
Sets the view object to be used by this widget.
public | void | setView ( $view ) |
---|---|---|
$view | yii\base\View | The view object that can be used to render views or view files. |
public function setView($view)
{
$this->\_view = $view;
}
2
3
4
trigger() public method
Defined in: yii\base\Component::trigger()
Triggers an event.
This method represents the happening of an event. It invokes all attached handlers for the event including class-level handlers.
public | void | trigger ( $name, yii\base\Event $event = null ) |
---|---|---|
$name | string | The event name |
$event | yii\base\Event | null |
public function trigger($name, Event $event = null)
{
$this->ensureBehaviors();
$eventHandlers = [];
foreach ($this->\_eventWildcards as $wildcard => $handlers) {
if (StringHelper::matchWildcard($wildcard, $name)) {
$eventHandlers[] = $handlers;
}
}
if (!empty($this->\_events[$name])) {
$eventHandlers[] = $this->\_events[$name];
}
if (!empty($eventHandlers)) {
$eventHandlers = call\_user\_func\_array('array\_merge', $eventHandlers);
if ($event === null) {
$event = new Event();
}
if ($event->sender === null) {
$event->sender = $this;
}
$event->handled = false;
$event->name = $name;
foreach ($eventHandlers as $handler) {
$event->data = $handler[1];
call\_user\_func($handler[0], $event);
// stop further handling if the event is handled
if ($event->handled) {
return;
}
}
}
// invoke class-level attached handlers
Event::trigger($this, $name, $event);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
widget() public static method
Defined in: yii\base\Widget::widget()
Creates a widget instance and runs it.
The widget rendering result is returned by this method.
public static | string | widget ( $config = [] ) |
---|---|---|
$config | array | Name-value pairs that will be used to initialize the object properties |
return | string | The rendering result of the widget. |
throws | Throwable |
public static function widget($config = [])
{
ob\_start();
ob\_implicit\_flush(false);
try {
/\* @var $widget Widget \*/
$config['class'] = get\_called\_class();
$widget = Yii::createObject($config);
$out = '';
if ($widget->beforeRun()) {
$result = $widget->run();
$out = $widget->afterRun($result);
}
} catch (\Exception $e) {
// close the output buffer opened above if it has not been closed already
if (ob\_get\_level() > 0) {
ob\_end\_clean();
}
throw $e;
} catch (\Throwable $e) {
// close the output buffer opened above if it has not been closed already
if (ob\_get\_level() > 0) {
ob\_end\_clean();
}
throw $e;
}
return ob\_get\_clean() . $out;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28