1
私はActionColumnボタンの視認性がこのように制御することができる理解:私が持っている私がyii2ドキュメントroleParamsの場合
http://www.yiiframework.com/doc-2.0/guide-security-authorization.htmlルールクラスでyii2 RBACを使用する場合、yii2 GridViewのActionColumnのボタンの表示を制御する方法は?
に基づいてRBACの承認、およびAuthorRuleルールクラスを作成している
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'title',
'body:ntext',
// ['class' => 'yii\grid\ActionColumn'],
[
'class' => 'yii\grid\ActionColumn',
'visibleButtons' =>
[
'update' => Yii::$app->user->can('updatePost'),
'delete' => Yii::$app->user->can('updatePost')
]
],
],
]);
?>
(ビューテンプレートで)これを実現しました:
if (\Yii::$app->user->can('updatePost', ['post' =>$model]){
//if the post is created by current user then do this
}
GridViewウィジェットのモデルまたはatleast idをように私は何かをする:ここで私の最終目標は、作成者ロールを持つユーザーのために、更新ボタンを削除することである
'visibleButtons' =>
[
'update' => Yii::$app->user->can('updatePost',['post' => \app\models\Post::findOne($howToGetThisId)]),
'delete' => Yii::$app->user->can('updatePost',['post' => \app\models\Post::findOne($howToGetThisId)])
]
ポストは、そのユーザーによって作成された場合にのみ表示されます。これを達成するための他の考えも歓迎されます。
ありがとうございました!