Vulisha
(Vulisha)
January 12, 2016, 3:04am
1
Hello, so I have this problem, and it always displays second option, no matter of user:
(Yii::$app->user->id == 'user_id'?['class' => 'yii\grid\ActionColumn']:
['class' => 'yii\grid\ActionColumn', 'template' => '{view}'])
In this:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'name',
'user_id',
(Yii::$app->user->id == 'user_id'?['class' => 'yii\grid\ActionColumn']:
['class' => 'yii\grid\ActionColumn', 'template' => '{view}']),
],
]); ?>
It echoes Yii::$app->user->id and user_id properly, but it simply doesn’t work, and I don’t know how else should I write this inside widget since it is in echo command
softark
(Softark)
January 12, 2016, 10:11am
2
Is this condition what you really want? This will almost always be false, because ‘user_id’ is a string that is ‘user_id’.
What do you want to compare?
Vulisha
(Vulisha)
January 12, 2016, 12:00pm
3
Ohhh, thats right
In short, I want to check, for every row in Model’s Index,
is the Yii::$app->user->id == Model->user_id
and display ActionColumn accordingly
softark
(Softark)
January 12, 2016, 4:30pm
4
Vulisha
(Vulisha)
January 12, 2016, 9:51pm
5
Awesome solved it after lot of googling, in documentation it doesn’t say you should write ‘button’ => code
For community sake here is how I did it
GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'name',
'user_id',
['class' => 'yii\grid\ActionColumn',
'template' => '{view}{update}{delete}',
'buttons' => [
//buttons
'view' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [
'title' => Yii::t('yii', 'View'),
]);
},
'update' => function ($url,$model) {
return Yii::$app->user->id == $model->user_id ? Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
'title' => Yii::t('yii', 'Update'),]):' ';
},
'delete' => function ($url,$model) {
return Yii::$app->user->id == $model->user_id ? Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [
'title' => Yii::t('yii', 'Delete'),]):' ';
},
]
],//!
],
]);