2014-05-08 3 views
7

У меня есть ItemController, и в actionView я помещал gridview моего Itempicture, и я хочу, когда я нажимаю на значок, обновляю и удаляю, а затем перейдите в ItempictureController.yii2 изменение действия контроллера в gridview

so Как изменить действие контроллера в gridview с помощью другого контроллера?

ответ

22

В вашем GridView, добавьте как

[ 
    'class' => 'yii\grid\ActionColumn', 
    'template' => '{new_action1}{new_action2}', 
    'buttons' => [ 
    'new_action1' => function ($url, $model) { 
     return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', 'controller/action?id='.$model->id, [ 
        'title' => Yii::t('app', 'New Action1'), 
     ]); 
    } 
    ], 
], 

Надеется, что это будет работать!

+0

Я знаю, что это очень старый вопрос, но у меня есть одна проблема с моим gridview, в котором я использовал другое действие 'controller' в' actioncolumn', а gridview находится в 'pjax', поэтому, когда я нажимаю кнопку, он не открывает вся новая страница просто обновляет gridview. любая идея, как я могу ее решить? –

5

Попробуйте это:

[ 
    'class' => 'yii\grid\ActionColumn', 
    'template' => '{view}', 
    'controller' => 'ItempictureController' 
] 

https://github.com/yiisoft/yii2/blob/master/docs/guide/output-data-widgets.md#action-column

+0

Простое и эффективное решение :-) – Pelang

+0

, что не работает, поскольку urlCreate превращает этот маршрут в «ItempictureController/view». но r-строка должна быть «itempicture/view» –

3
[ 
    'class' => 'yii\grid\ActionColumn', 
    'template' => '{view}', 
    'controller' => 'itempicture' 
] 
+1

Его часто лучше иметь краткое объяснение, чем иметь только код-ответы. – IdeaHat

22

Вам нужно установить $ контроллера свойства юй \ сетки \ ActionColumn. В вашем случае, попробуйте следующее:

[ 
    'class' => 'yii\grid\ActionColumn', 
    'controller' => 'itempicture' 
] 

http://www.yiiframework.com/doc-2.0/yii-grid-actioncolumn.html#$controller-detail

Если вы используете YII \ Data \ ArrayDataProvider, убедитесь, что вы установили $ ключевое свойство, как:

ключа

$ dataProvider-> = «ид «; // id - это имя первичного ключа вашей модели Itempicture.

http://www.yiiframework.com/doc-2.0/yii-data-arraydataprovider.html#$key-detail

Надеется, что это помогает.

+0

Если вы используете SqlDataprovider, вам также необходимо установить $ dataProvider-> key = 'id'; – jonazu

+0

Лучший ответ, работает для меня –

Смежные вопросы