Browse Source

Fixes #1499: Added `ActionColumn::controller` property to support customizing the controller for handling GridView actions

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
5fc275e935
  1. 1
      framework/CHANGELOG.md
  2. 10
      framework/yii/grid/ActionColumn.php

1
framework/CHANGELOG.md

@ -22,6 +22,7 @@ Yii Framework 2 Change Log
- Enh #1406: DB Schema support for Oracle Database (p0larbeer, qiangxue)
- Enh #1437: Added ListView::viewParams (qiangxue)
- Enh #1469: ActiveRecord::find() now works with default conditions (default scope) applied by createQuery (cebe)
- Enh #1499: Added `ActionColumn::controller` property to support customizing the controller for handling GridView actions (qiangxue)
- Enh #1523: Query conditions now allow to use the NOT operator (cebe)
- Enh #1552: It is now possible to use multiple bootstrap NavBar in a single page (Alex-Code)
- Enh #1572: Added `yii\web\Controller::createAbsoluteUrl()` (samdark)

10
framework/yii/grid/ActionColumn.php

@ -19,6 +19,13 @@ use yii\helpers\Html;
*/
class ActionColumn extends Column
{
/**
* @var string 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.
*/
public $controller;
public $template = '{view} {update} {delete}';
public $buttons = [];
public $urlCreator;
@ -75,7 +82,8 @@ class ActionColumn extends Column
return call_user_func($this->urlCreator, $model, $key, $index, $action);
} else {
$params = is_array($key) ? $key : ['id' => $key];
return Yii::$app->controller->createUrl($action, $params);
$route = $this->controller ? $this->controller . '/' . $action : $action;
return Yii::$app->controller->createUrl($route, $params);
}
}

Loading…
Cancel
Save