Masquer Yii2 GridView boutons d'Action
Je veux cacher Yii2 GridView Colonne Action sur les boutons de la base de modèle d'état du champ.
Si statut = 1 puis masquer le bouton d'affichage uniquement.
Comment je peux?
Code:
[
'class' => 'yii\grid\ActionColumn',
'contentOptions' => ['style' => 'width:260px;'],
'header'=>'Actions',
'template' => '{view} {delete}',
'buttons' => [
//view button
'view' => function ($url, $model) {
return Html::a('<span class="fa fa-search"></span>View', $url, [
'title' => Yii::t('app', 'View'),
'class'=>'btn btn-primary btn-xs',
]);
},
],
'urlCreator' => function ($action, $model, $key, $index) {
if ($action === 'view') {
$url ='/jobs/view?id='.$model->jobid;
return $url;
}
],
- github.com/yiisoft/yii2/blob/... juste ajouter
return $model->status == 1 ? Html::a('<span class="fa fa-search"></span>View', $url, [ 'title' => Yii::t('app', 'View'), 'class'=>'btn btn-primary btn-xs', ]) : '';
- votre code a fonctionné pour moi,merci
- Pouvez-vous changer votre commentaire comme réponse ci-dessous?
Vous devez vous connecter pour publier un commentaire.
Lire
Juste ajouter
Vous pouvez utiliser
['class' => ActionColumn::className(),'template'=>'{view} {update}' ]
sur votre gridview.
Utilisation
visibleButtons
propriété deActionColumn
classe:Référence: https://www.yiiframework.com/doc/api/2.0/yii-grid-actioncolumn#$visibleButtons-détail
Dans yii2 utilisation
return Url::to(['controler/action']);
complètement
Je suis à l'aide de kartik extension, mais fonctionne très bien avec yii
Il peut être fait comme ceci
vous avez besoin d'ajouter le modèle de propiety ('template'=>'{update} {supprimer}') à la colonne arry où vous mettez les options
C'est ce que j'ai fait https://github.com/Mihai-P/yii2theme-brain/blob/master/widgets/ActionColumn.php en bref j'ai étendu la ActionColumn de classe et d'utiliser mon propre place de celui par défaut.
ma classe a plus de choses en elle, comme la vérification de privilèges d'accès et ne montrant que les boutons ils ont accès, vous pouvez ignorer cette partie et il suffit d'utiliser le moyen de vérifier pour la façon de le vérifier pour le modèle. Je considère cela plus réutilisable ensuite à l'écriture de code dans la vue. Si vous commencez à écrire le code dans la vue alors vous devez écrire le même code pour chaque écran.
Je suis sûr que vous pouvez aussi faire ce que vous voulez à l'intérieur de la vue, essayez d'utiliser
Et retourne '{afficher} {supprimer} " ou " {supprimer}'
Vous avez besoin de changer une seule ligne uniquement.
Remplacer:
HTML:
Avec:
HTML:
Sa fonctionne pour moi:
est la même chose que: return $model->status == " ? 'show_action_here' : 'no_show';
ce a travaillé pour moi . complet ActionColumn code