Class yii\grid\ActionColumn
Inheritance | yii\grid\ActionColumn » yii\grid\Column » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/grid/ActionColumn.php |
ActionColumn is a column for the yii\grid\GridView widget that displays buttons for viewing and manipulating the items.
To add an ActionColumn to the gridview, add it to the columns configuration as follows:
'columns' => [
// ...
[
'class' => ActionColumn::className(),
// you may configure additional properties here
],
]
For more details and usage information on ActionColumn, see the guide article on data widgets.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$buttonOptions | array | Html options to be applied to the default button. | yii\grid\ActionColumn |
$buttons | array | Button rendering callbacks. | yii\grid\ActionColumn |
$content | callable | This is a callable that will be used to generate the content of each cell. | yii\grid\Column |
$contentOptions | array|Closure | The HTML attributes for the data cell tag. | yii\grid\Column |
$controller | string | The ID of the controller that should handle the actions specified here. | yii\grid\ActionColumn |
$filterOptions | array | The HTML attributes for the filter cell tag. | yii\grid\Column |
$footer | string | The footer cell content. | yii\grid\Column |
$footerOptions | array | The HTML attributes for the footer cell tag. | yii\grid\Column |
$grid | yii\grid\GridView | The grid view object that owns this column. | yii\grid\Column |
$header | string | The header cell content. | yii\grid\Column |
$headerOptions | {@inheritdoc} | yii\grid\ActionColumn | |
$options | array | The HTML attributes for the column group tag. | yii\grid\Column |
$template | string | The template used for composing each cell in the action column. | yii\grid\ActionColumn |
$urlCreator | callable | A callback that creates a button URL using the specified model information. | yii\grid\ActionColumn |
$visible | boolean | Whether this column is visible. | yii\grid\Column |
$visibleButtons | array | Visibility conditions for each button. | yii\grid\ActionColumn |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\BaseObject |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of an object property. | yii\base\BaseObject |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\BaseObject |
__set() | Sets value of an object property. | yii\base\BaseObject |
__unset() | Sets an object property to null. | yii\base\BaseObject |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\BaseObject |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\BaseObject |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
createUrl() | Creates a URL for the given action and model. | yii\grid\ActionColumn |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\BaseObject |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\BaseObject |
init() | {@inheritdoc} | yii\grid\ActionColumn |
renderDataCell() | Renders a data cell. | yii\grid\Column |
renderFilterCell() | Renders the filter cell. | yii\grid\Column |
renderFooterCell() | Renders the footer cell. | yii\grid\Column |
renderHeaderCell() | Renders the header cell. | yii\grid\Column |
Protected Methods
Method | Description | Defined By |
---|---|---|
getHeaderCellLabel() | Returns header cell label. | yii\grid\Column |
initDefaultButton() | Initializes the default button rendering callback for single button. | yii\grid\ActionColumn |
initDefaultButtons() | Initializes the default button rendering callbacks. | yii\grid\ActionColumn |
renderDataCellContent() | {@inheritdoc} | yii\grid\ActionColumn |
renderFilterCellContent() | Renders the filter cell content. | yii\grid\Column |
renderFooterCellContent() | Renders the footer cell content. | yii\grid\Column |
renderHeaderCellContent() | Renders the header cell content. | yii\grid\Column |
Property Details
Html options to be applied to the default button.
Button rendering callbacks. The array keys are the button names (without curly brackets), and the values are the corresponding button rendering callbacks. The callbacks should use the following signature:
function ($url, $model, $key) {
// return the button HTML code
}
where $url
is the URL that the column creates for the button, $model
is the model object
being rendered for the current row, and $key
is the key of the model in the data provider array.
You can add further conditions to the button, for example only display it, when the model is editable (here assuming you have a status field that indicates that):
[
'update' => function ($url, $model, $key) {
return $model->status === 'editable' ? Html::a('Update', $url) : '';
},
],
The ID of the controller that should handle the actions specified here. If not set, it will use the currently active controller. This property is mainly used by $urlCreator to create URLs for different actions. The value of this property will be prefixed to each action name to form the route of the action.
The template used for composing each cell in the action column.
Tokens enclosed within curly brackets are treated as controller action IDs (also called button names
in the context of action column). They will be replaced by the corresponding button rendering callbacks
specified in $buttons. For example, the token {view}
will be replaced by the result of
the callback buttons['view']
. If a callback cannot be found, the token will be replaced with an empty string.
As an example, to only have the view, and update button you can add the ActionColumn to your GridView columns as follows:
['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update}'],
See also $buttons.
A callback that creates a button URL using the specified model information. The signature of the callback should be the same as that of createUrl() Since 2.0.10 it can accept additional parameter, which refers to the column instance itself:
function (string $action, mixed $model, mixed $key, integer $index, ActionColumn $this) {
//return string;
}
If this property is not set, button URLs will be created using createUrl().
Visibility conditions for each button. The array keys are the button names (without curly brackets), and the values are the boolean true/false or the anonymous function. When the button name is not specified in this array it will be shown by default. The callbacks must use the following signature:
function ($model, $key, $index) {
return $model->status === 'editable';
}
Or you can pass a boolean value:
[
'update' => \Yii::$app->user->can('update'),
],
Method Details
Creates a URL for the given action and model.
This method is called for each button and each row.
public string createUrl ( $action, $model, $key, $index ) | ||
$action | string | The button name (or action ID) |
$model | yii\db\ActiveRecordInterface | The data model |
$key | mixed | The key associated with the data model |
$index | integer | The current row index |
return | string | The created URL |
---|
{@inheritdoc}
public void init ( ) |
Initializes the default button rendering callback for single button.
protected void initDefaultButton ( $name, $iconName, $additionalOptions = [] ) | ||
$name | string | Button name as it's written in template |
$iconName | string | The part of Bootstrap glyphicon class that makes it unique |
$additionalOptions | array | Array of additional options |
Initializes the default button rendering callbacks.
protected void initDefaultButtons ( ) |
{@inheritdoc}
protected void renderDataCellContent ( $model, $key, $index ) | ||
$model | ||
$key | ||
$index |
Signup or Login in order to comment.