Как обновить, просмотреть, удалить в соответствии с логином пользователя в yii2?

введите описание изображения здесь

Я должен изменить идентификатор просмотра, обновления, удаления для каждого пользователя входа в систему, но когда я нажимаю на Просмотр, я получаю идентификатор индекса. Я хочу изменить определенную компанию согласно идентификатору. Пожалуйста, помогите мне, я новичок в yii2 .. .Заранее спасибо.
actionIndex ()

$searchModel = new VendorsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->pageSize = 10;
$user = \Yii::$app->user->identity;
$userid = \Yii::$app->user->identity->id;

$query1 = new \yii\db\Query;
$query1->select('*')->from('vendors')->where(['ven_contact_person_id' => $userid,'deleted' => 'N']);
$query1->createCommand();

$dataProvider1 = new ActiveDataProvider([
'query' => $query1,
'pagination' => false,
]);return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'dataProvider1' => $dataProvider1,
]);

index.php

    <?= GridView::widget([
'dataProvider' => $dataProvider,
'dataProvider' => $dataProvider1,
'filterModel' => $searchModel,
'columns' => [
'ven_id',
'ven_company_name',
'ven_website',
'ven_contact_no',
'ven_email_id:email',
['class' => 'yii\grid\ActionColumn',
'header' => 'Action',
'template' => '{view} {edit} {delete}',
'buttons' => [
'view' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url);
},
'edit' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url);
},
'delete' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url);
},
],
'urlCreator' => function ($action, $dataProvider, $key, $index) {

if ($action === 'view') {
return Url::to(['vendors/view', 'id' =>$dataProvider['ven_id']]);
}
if ($action === 'edit') {
return Url::to(['/vendors/update', 'id' =>$dataProvider['ven_id']]);
}
if ($action === 'delete') {
return Url::to(['/vendors/delete', 'id' =>$dataProvider['ven_id']]);
}
return $url;
}
],
],
]); ?>

1

Решение

Для значка и модели-> ID, я думаю, вам нужно это

   GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
'name',
['class' => 'yii\grid\ActionColumn',
'header' => 'Action',
'template' => '{view} {edit} {delete}',
'buttons' => [
'view' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url);
},
'edit' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url);
},
'delete' => function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url,[
'title' => Yii::t('yii', 'Delete'),
'data-confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'),
'data-method' => 'post',
]);
},
],
'urlCreator' => function ($action, $model, $key, $index) {

if ($action === 'view') {
$url = Url::to(['/yourController/view', 'id' =>$model->id]);
}
if ($action === 'edit') {
$url = Url::to(['/yourController/edit', 'id' =>$model->id]);
}
if ($action === 'delete') {
$url = Url::to(['/yourController/delete', 'id' =>$model->id]);
}
return $url;
}
],
],
]);
2

Другие решения

извините за добавление ответа (не могу добавить комментарий, для которого требуется репутация> = 50)

Не могли бы вы добавить индексный файл?

на мой взгляд, это будет ошибкой в ​​этом файле, например, метод, который работает для меня:

GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
'name',
['class' => 'yii\grid\ActionColumn',
'header' => 'Action',
'template' => '{view} {edit} {delete}',
'buttons' => [
'view' => function ($url, $model) {
return Html::a('View', $url);
},
'edit' => function ($url, $model) {
return Html::a('Edit', $url);
},
'delete' => function ($url, $model) {
return Html::a('Delete', $url);
},
],
],
],
]);
1