根据模型属性值 Yii2 更改 Gridview 中的按钮操作 [英] Change the button action in Gridview based on a model attribute value Yii2

查看:27
本文介绍了根据模型属性值 Yii2 更改 Gridview 中的按钮操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过 CRUD 生成器生成了一个简单的应用程序...

在查看页面中,有一个操作列分配了一些按钮,如查看、更新、删除......

我想要的只是创建一个状态按钮....

如果状态为非活动状态,它应该询问我并将状态更改为活动状态,反之亦然这是我的代码:

'suspend' =>函数($url,$model){返回 HTML::a('<span class="btn btn-xs btn-danger icon-remove large-80"style="margin-left:5px;"></span>',$网址,['标题' =>Yii::t('app', 'Inactivate')]);},'激活' =>函数($url,$model){返回 HTML::a('<span class="btn btn-xs btn-success icon-ok large-80"style="margin-left:5px;"></span>',$网址,['标题' =>Yii::t('app', '激活')]);},

解决方案

试试这个..

<预><代码> ['类' =>'yii\grid\ActionColumn','模板' =>'{激活}{停用}','按钮' =>['激活' =>函数($url,$model){if($model->status==1)return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, ['标题' =>Yii::t('app', '激活'),]);},'停用' =>函数($url,$model){如果($模型->状态== 0)return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, ['标题' =>Yii::t('app', '停用'),]);},],'urlCreator' =>函数($action,$model,$key,$index){if ($action === '激活') {$url =Url::toRoute(['controller/activate', 'id' => $model->id]);返回 $url;}if ($action === '停用') {$url =Url::toRoute(['controller/deactivate', 'id' => $model->id]);返回 $url;}}],

您需要在视图中包含 use yii\helpers\Url;

I generated a simple application by CRUD generator...

In the View page there is a action column assigned with some buttons like view, update, delete....

all I want is to create a status button....

If the status is inactive it should ask me and change the status into active and vice versa This is my code:

'suspend' => function($url, $model) { 
    return Html::a(
        '<span class="btn btn-xs btn-danger icon-remove bigger-80"style="margin-left:5px;"></span>',
        $url,
        ['title' => Yii::t('app', 'Inactivate')]
    );
},
'activate' => function($url, $model) {
    return Html::a(
        '<span class="btn btn-xs btn-success icon-ok bigger-80"style="margin-left:5px;"></span>',
        $url,
        ['title' => Yii::t('app', 'Activate')]
    );
},

解决方案

Try with this..

        [
          'class' => 'yii\grid\ActionColumn',
          'template' => '{activate}{deactivate}',
          'buttons' => [
            'activate' => function ($url, $model) {
            if($model->status==1)
                return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [
                            'title' => Yii::t('app', 'Activate'),
                ]);
            },
            'deactivate' => function ($url, $model) {
            if($model->status==0)
                return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [
                            'title' => Yii::t('app', 'Deactivate'),
                ]);
            },

          ],
          'urlCreator' => function ($action, $model, $key, $index) {
            if ($action === 'acivate') {
                $url =Url::toRoute(['controller/activate', 'id' => $model->id]);
                return $url;
            }
           if ($action === 'deactivate') {
                $url =Url::toRoute(['controller/deactivate', 'id' => $model->id]);
                return $url;
            }

          }
         ],

You need to include use yii\helpers\Url; in your view

这篇关于根据模型属性值 Yii2 更改 Gridview 中的按钮操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆