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

编程入门 行业动态 更新时间:2024-10-23 07:37:56
根据模型属性值Yii2更改Gridview中的按钮操作(Change the button action in Gridview based on a model attribute value Yii2)

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

在“视图”页面中,有一个操作列,其中包含一些按钮,如视图,更新,删除....

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

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

'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')]
    );
},

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')]
    );
},

                

最满意答案

试试这个......

[ '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; } } ],

你需要包括使用yii\helpers\Url; 在你看来

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

更多推荐

本文发布于:2023-08-06 19:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1454985.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:按钮   属性   模型   操作   Gridview

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!