Llamar funcion en controller desde vista por medio de un botón

Buenas a todos!

Como lo dice en el título, lo que querio lograr es llamar la siguiente función ubicada en PrestamosController, desde una vista:

public function actionBorrarTablas(){

   Yii::$app->db->createCommand()->checkIntegrity(false)->execute();
   Yii::$app->db->createCommand()->truncateTable('prestamos')->execute();
   Yii::$app->db->createCommand()->truncateTable('alumnos')->execute();
   Yii::$app->db->createCommand()->truncateTable('materias')->execute();
   Yii::$app->db->createCommand()->truncateTable('docentes')->execute();
   Yii::$app->db->createCommand()->truncateTable('empleados')->execute();
   Yii::$app->db->createCommand()->truncateTable('materiales')->execute();
   Yii::$app->db->createCommand()->checkIntegrity(true)->execute();
         
}

He buscado en la web, y hasta ahora lo que supuestamente debería funcionar es el código siguiente para el botón:

Html::a('Borrar Datos', ['PrestamosController/borrartablas'], 
[
    'class'=>'btn btn-danger',
    'data-confirm'=>'Está seguro de borrar los datos?'
]);

Pero no he tenido suerte, solo me muestra el error #404 página no encontrada.

Muchas gracias de antemano.

cambia

['PrestamosController/borrartablas']

por

['Prestamos/borrartablas']

en la llama mediante el enlace.
saludos

No funciona, de hecho fué lo primero que hice antes de pedir ayuda aquí.

Tienes razón, me olvidé de la forma que tiene Yii2 de tratar las acciones formadas por palabras compuestas. Prueba con:

['prestamos/borrar-tablas']

saludos

1 Like

Ese maldito guión :sweat_smile:, ya funcionó, muchas gracias!