【问题标题】:Show/Hide Grid View Action Column Based On Condition - Yii2根据条件显示/隐藏网格视图操作列 - Yii2
【发布时间】:2016-07-01 09:59:30
【问题描述】:

我试图根据某些条件显示/隐藏 ActionColumn。 在我的系统中,定义了 2 个角色:PrimarySecondary。我想为 Role Secondary 隐藏 ActionColumn 并为 Role Primary 显示 ActionColumn

我从$visible 获得了一个visible 属性选项。其中,'visible'=> true'visible'=> false 工作正常。

<?
[
  'class' => 'yii\grid\ActionColumn',
  'visible' => false,
    .
    .
    .
]

但是,问题是:我想根据某些条件动态地将visible 选项设置为True / False

<?
[
  'class' => 'yii\grid\ActionColumn',
  'visible' => function ($data) {
      if (Yii::$app->userinfo->hasRole([AR::ROLE_PRIMARY])) {
        return true;
      } 
      if (Yii::$app->userinfo->hasRole([AR::ROLE_SECONDARY])) {
        return false;
      }
  },
    .
    .
    .
]

我也尝试过这种方式。但是,没有运气。任何帮助/提示/建议都是可观的。

我搜索了Yii2 GridView hide column conditionally

【问题讨论】:

    标签: php gridview yii2 yii2-basic-app yii2-widget


    【解决方案1】:

    您不能将可见设置为可调用对象,尽管在调用 gridview 之前没有什么可以阻止您设置变量。

    但在这种情况下,可见性仅取决于他们是否具有主要角色,您可以使用:

    'visible' => Yii::$app->userinfo->hasRole([AR::ROLE_PRIMARY])
    

    【讨论】:

    • 干得好。 (Y)。有效。但是,为什么它在这种情况下不起作用。因为,它没有任何错误并且在逻辑上返回真/假值。
    • @Nana Partykar:兄弟需要你的建议。设施ban ho gai he。 Mene doc 阅读 kiya 或 sare question ko 正确编辑 kiya .. 但 fir bhi ban hta nai he。请帮助...
    • 我第一次看到这个问题。所以,我对它没有太多想法。可能是版主做到了。可能只是您身边的一些问题。询问/联系堆栈溢出支持 Biraadar @vijaynathji
    【解决方案2】:

    您可以使用条件语句在网格视图中隐藏特定的复选框

     Here is simple code which works for me
    
           [
             'class' => 'yii\grid\CheckboxColumn', 
             'checkboxOptions' => function($dataProvider) {
                                  return ["value" => ($dataProvider['tiIsPaid'] == 0)?$dataProvider['iDriverEarningId']:'',"style"=>($dataProvider['tiIsPaid'] == 0)?'':'display:none'];},
           ]
    

    这里我使用了简单的逻辑来隐藏特定列的复选框

    • 将值设置为空或空白,以便单击全选复选框时无法选中
    • 使用 css 的 display none 属性隐藏复选框

    希望这有助于您根据您的条件隐藏特定列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2014-01-22
      • 1970-01-01
      相关资源
      最近更新 更多