A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.yiiframework.com/doc/api/2.0/yii-grid-actioncolumn below:

ActionColumn, yii\grid\ActionColumn | API Documentation for Yii 2.0

Class yii\grid\ActionColumn

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::class,
        
    ],
]

For more details and usage information on ActionColumn, see the guide article on data widgets.

Property Details

Hide inherited properties

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) {
    
}

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.

Button icons. The array keys are the icon names and the values the corresponding html: `php [

'eye-open' => '<svg ...></svg>',
'pencil' => Html::tag('span', '', ['class' => 'glyphicon glyphicon-pencil'])

] ` Defaults to FontAwesome 5 free svg icons.

See also https://fontawesome.com.

public array $icons = [
    
'eye-open' => '<svg aria-hidden="true" style="display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em;width:1.125em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M573 241C518 136 411 64 288 64S58 136 3 241a32 32 0 000 30c55 105 162 177 285 177s230-72 285-177a32 32 0 000-30zM288 400a144 144 0 11144-144 144 144 0 01-144 144zm0-240a95 95 0 00-25 4 48 48 0 01-67 67 96 96 0 1092-71z"/></svg>',
    
'pencil' => '<svg aria-hidden="true" style="display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em;width:1em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M498 142l-46 46c-5 5-13 5-17 0L324 77c-5-5-5-12 0-17l46-46c19-19 49-19 68 0l60 60c19 19 19 49 0 68zm-214-42L22 362 0 484c-3 16 12 30 28 28l122-22 262-262c5-5 5-13 0-17L301 100c-4-5-12-5-17 0zM124 340c-5-6-5-14 0-20l154-154c6-5 14-5 20 0s5 14 0 20L144 340c-6 5-14 5-20 0zm-36 84h48v36l-64 12-32-31 12-65h36v48z"/></svg>',
    
'trash' => '<svg aria-hidden="true" style="display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em;width:.875em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M32 464a48 48 0 0048 48h288a48 48 0 0048-48V128H32zm272-256a16 16 0 0132 0v224a16 16 0 01-32 0zm-96 0a16 16 0 0132 0v224a16 16 0 01-32 0zm-96 0a16 16 0 0132 0v224a16 16 0 01-32 0zM432 32H312l-9-19a24 24 0 00-22-13H167a24 24 0 00-22 13l-9 19H16A16 16 0 000 48v32a16 16 0 0016 16h416a16 16 0 0016-16V48a16 16 0 00-16-16z"/></svg>',
]

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) {
    
}

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

Hide inherited methods

Defined in: yii\base\BaseObject::__call()

Calls the named method which is not a class method.

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.

Source code

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            

Defined in: yii\base\BaseObject::__construct()

Constructor.

The default implementation does two things:

If this method is overridden in a child class, it is recommended that

public void __construct ( $config = [] ) $config array

Name-value pairs that will be used to initialize the object properties

Source code

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            

Defined in: yii\base\BaseObject::__get()

Returns the value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $object->property;.

See also __set().

Source code

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (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);
}

            
public boolean __isset ( $name ) $name string

The property name or the event name

return boolean

Whether the named property is set (not null).

Source code

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            

Defined in: yii\base\BaseObject::__set()

Sets value of an object property.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $object->property = $value;.

See also __get().

Source code

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            

Defined in: yii\base\BaseObject::__unset()

Sets an object property to null.

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($object->property).

Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.

See also https://www.php.net/manual/en/function.unset.php.

Source code

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            

Defined in: yii\base\BaseObject::canGetProperty()

Returns a value indicating whether a property can be read.

A property is readable if:

See also canSetProperty().

Source code

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            

Defined in: yii\base\BaseObject::canSetProperty()

Returns a value indicating whether a property can be set.

A property is writable if:

See also canGetProperty().

public boolean canSetProperty ( $name, $checkVars true ) $name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property can be written

Source code

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            

Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.

Source code

                public static function className()
{
    return get_called_class();
}

            

Creates a URL for the given action and model.

This method is called for each button and each row.

Source code

                public function createUrl($action, $model, $key, $index)
{
    if (is_callable($this->urlCreator)) {
        return call_user_func($this->urlCreator, $action, $model, $key, $index, $this);
    }
    $params = is_array($key) ? $key : ['id' => (string) $key];
    $params[0] = $this->controller ? $this->controller . '/' . $action : $action;
    return Url::toRoute($params);
}

            

Defined in: yii\base\BaseObject::hasMethod()

Returns a value indicating whether a method is defined.

The default implementation is a call to php function method_exists(). You may override this method when you implemented the php magic method __call().

Source code

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            

Defined in: yii\base\BaseObject::hasProperty()

Returns a value indicating whether a property is defined.

A property is defined if:

See also:

public boolean hasProperty ( $name, $checkVars true ) $name string

The property name

$checkVars boolean

Whether to treat member variables as properties

return boolean

Whether the property is defined

Source code

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

Source code

                public function init()
{
    parent::init();
    $this->initDefaultButtons();
}

            

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

Source code

                protected function initDefaultButton($name, $iconName, $additionalOptions = [])
{
    if (!isset($this->buttons[$name]) && strpos($this->template, '{' . $name . '}') !== false) {
        $this->buttons[$name] = function ($url, $model, $key) use ($name, $iconName, $additionalOptions) {
            switch ($name) {
                case 'view':
                    $title = Yii::t('yii', 'View');
                    break;
                case 'update':
                    $title = Yii::t('yii', 'Update');
                    break;
                case 'delete':
                    $title = Yii::t('yii', 'Delete');
                    break;
                default:
                    $title = ucfirst($name);
            }
            $options = array_merge([
                'title' => $title,
                'aria-label' => $title,
                'data-pjax' => '0',
            ], $additionalOptions, $this->buttonOptions);
            $icon = isset($this->icons[$iconName])
                ? $this->icons[$iconName]
                : Html::tag('span', '', ['class' => "glyphicon glyphicon-$iconName"]);
            return Html::a($icon, $url, $options);
        };
    }
}

            

Initializes the default button rendering callbacks.

Source code

                protected function initDefaultButtons()
{
    $this->initDefaultButton('view', 'eye-open');
    $this->initDefaultButton('update', 'pencil');
    $this->initDefaultButton('delete', 'trash', [
        'data-confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'),
        'data-method' => 'post',
    ]);
}

            

Source code

                public function renderDataCell($model, $key, $index)
{
    if ($this->contentOptions instanceof Closure) {
        $options = call_user_func($this->contentOptions, $model, $key, $index, $this);
    } else {
        $options = $this->contentOptions;
    }
    return Html::tag('td', $this->renderDataCellContent($model, $key, $index), $options);
}

            

Renders the data cell content.

Source code

                protected function renderDataCellContent($model, $key, $index)
{
    return preg_replace_callback('/\\{([\w\-\/]+)\\}/', function ($matches) use ($model, $key, $index) {
        $name = $matches[1];
        if (isset($this->visibleButtons[$name])) {
            $isVisible = $this->visibleButtons[$name] instanceof \Closure
                ? call_user_func($this->visibleButtons[$name], $model, $key, $index)
                : $this->visibleButtons[$name];
        } else {
            $isVisible = true;
        }
        if ($isVisible && isset($this->buttons[$name])) {
            $url = $this->createUrl($name, $model, $key, $index);
            return call_user_func($this->buttons[$name], $url, $model, $key);
        }
        return '';
    }, $this->template);
}

            

Source code

                public function renderFilterCell()
{
    return Html::tag('td', $this->renderFilterCellContent(), $this->filterOptions);
}

            

Defined in: yii\grid\Column::renderFilterCellContent()

Renders the filter cell content.

The default implementation simply renders a space. This method may be overridden to customize the rendering of the filter cell (if any).

Source code

                protected function renderFilterCellContent()
{
    return $this->grid->emptyCell;
}

            

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4