2016-07-01 12 views
0

私はを表示/非表示にしましたActionColumnいくつかの条件に基づいています。 私のシステムでは、2つの役割が定義されています:Primary & Secondary。私はActionColumnRole Secondaryと表示し、を表示したいと思っていました。Role Primaryです。条件に基づいてグリッドビューのアクション列を表示/非表示 - Yii2

visible属性オプションを$visibleから取得しました。ここでは、'visible'=> true'visible'=> falseが適切に動作しています。

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

しかし、問題です:私は動的にいくつかの条件に基づいてTrue/Falseとしてvisibleオプションを設定したいです。

<? 
[ 
    '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を検索しました。

答えて

3

呼び出し可能にすることはできませんが、gridviewを呼び出す前に変数の設定を停止することはできません。この場合

はしかし、可視性は、彼らが主要な役割を持っているかどうかに依存するだけで、あなただけ使用することができます:まあ完了

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

を。 (Y)。出来た。しかし、なぜそれはそのような状態に取り組んでいなかったのですか?として、それはエラーを持っていないと論理的にtrue/falseの値を戻していた。 –

+0

@Nana Partykar:あなたのアドバイスが必要です。質問施設に禁止を聞いてください。メネ博士はキヤを読んだり、質問をしたりして、キヤを正しく編集しました。しかし、ファービーは禁止です。 Plsは助けます... –

+0

私はこの問題を初めて見ています。だから私はそれについてあまり考えていない。 **モデレーター**がこれをしたかもしれません。あなたの側からだけいくつかの問題があります。 Ask/ContactスタックオーバーフローサポートBiraadar @vijaynathji –

関連する問題