rutas - yii2 pretty url
cómo cambiar la vista, actualizar y eliminar la URL en la columna de acción en yii2 (3)
[
''class'' => ''yii/grid/ActionColumn'',
''header'' => ''Actions'',
''headerOptions'' => [''style'' => ''color:#337ab7''],
''template'' => ''{view}{update}{delete}'',
''buttons'' => [
''view'' => function ($url, $model) {
return Html::a(''<span class="glyphicon glyphicon-eye-open"></span>'', $url, [
''title'' => Yii::t(''app'', ''lead-view''),
]);
},
''update'' => function ($url, $model) {
return Html::a(''<span class="glyphicon glyphicon-pencil"></span>'', $url, [
''title'' => Yii::t(''app'', ''lead-update''),
]);
},
''delete'' => function ($url, $model) {
return Html::a(''<span class="glyphicon glyphicon-trash"></span>'', $url, [
''title'' => Yii::t(''app'', ''lead-delete''),
]);
}
],
''urlCreator'' => function ($action, $model, $key, $index) {
if ($action === ''view'') {
$url =''index.php?r=client-login/lead-view&id=''.$model->id;
return $url;
}
if ($action === ''update'') {
$url =''index.php?r=client-login/lead-update&id=''.$model->id;
return $url;
}
if ($action === ''delete'') {
$url =''index.php?r=client-login/lead-delete&id=''.$model->id;
return $url;
}
}
],
Tengo crear acción en la actualización y ver en el controlador, pero esta acción no cambia en la columna de acción en la página de índice
public function actionLeadView($id){
$id = $_GET[''id''];
$model = Leads::findOne($id);
return $this->render(''viewlead'', [
''model'' => $model,
]);
}
public function actionLeadUpdate($id){
$id = $_GET[''id''];
$model = Leads::findOne($id);
date_default_timezone_set("Asia/Kolkata");
$date = date(''Y/m/d H-i-sa'');
if ($model->load(Yii::$app->request->post())) {
$model->modified = $date;
if($model->validate()){
$model->save();
return $this->redirect([''viewlead'', ''id'' => $model->id]);
}else {
return $this->render(''updatelead'', [
''model'' => $model,
]);
}
}
else
{
return $this->render(''updatelead'', [
''model'' => $model,
]);
}
}
Dado que la pregunta es
cómo cambiar la vista, actualizar y eliminar la URL en la columna de acción en yii2
Estoy mejorando la respuesta de @ insane-skull agregando una acción de eliminación
[
''class'' => ''yii/grid/ActionColumn'',
''template'' => ''{leadView} {leadUpdate} {leadDelete}'',
''buttons'' => [
''leadView'' => function ($url, $model) {
$url = Url::to([''controller/lead-view'', ''id'' => $model->whatever_id]);
return Html::a(''<span class="fa fa-eye"></span>'', $url, [''title'' => ''view'']);
},
''leadUpdate'' => function ($url, $model) {
$url = Url::to([''controller/lead-update'', ''id'' => $model->whatever_id]);
return Html::a(''<span class="fa fa-pencil"></span>'', $url, [''title'' => ''update'']);
},
''leadDelete'' => function ($url, $model) {
$url = Url::to([''controller/lead-delete'', ''id'' => $model->whatever_id]);
return Html::a(''<span class="fa fa-trash"></span>'', $url, [
''title'' => ''delete'',
''data-confirm'' => Yii::t(''yii'', ''Are you sure you want to delete this item?''),
''data-method'' => ''post'',
]);
},
]
]
En gridview,
[
''class'' => ''yii/grid/ActionColumn'',
''template'' => ''{leadView} {leadUpdate}'',
''buttons'' => [
''leadView'' => function ($url, $model) {
$url = Url::to([''controller/lead-view'', ''id'' => $model->whatever_id]);
return Html::a(''<span class="fa fa-eye"></span>'', $url, [''title'' => ''view'']);
},
''leadUpdate'' => function ($url, $model) {
$url = Url::to([''controller/lead-update'', ''id'' => $model->whatever_id]);
return Html::a(''<span class="fa fa-pencil"></span>'', $url, [''title'' => ''update'']);
},
]
]