Manual Técnico appServiserAdmin
Documentación Técnica del Archivo CourseController.php en la Carpeta appServiserAdmin/controllers
Español
Definición de la Carpeta
El archivo CourseController.php se encuentra en la carpeta de controladores de un proyecto que utiliza el marco de trabajo Yii2. Este archivo es responsable de manejar las acciones relacionadas con el modelo de Course, que generalmente se utiliza para gestionar cursos en la aplicación.
Propósito
El propósito del archivo CourseController.php es implementar las acciones CRUD (Crear, Leer, Actualizar, Eliminar) para el modelo de Course. Esto permite a los administradores y usuarios gestionar los cursos a través de la interfaz de usuario, facilitando la creación, visualización, edición y eliminación de cursos.
Funciones
- Listar Cursos: Proporciona una acción para listar todos los cursos disponibles en la aplicación.
- Ver Curso: Permite a los usuarios ver los detalles de un curso específico.
- Crear Curso: Facilita la creación de un nuevo curso a través de un formulario.
- Actualizar Curso: Permite la edición de un curso existente.
- Eliminar Curso: Proporciona la funcionalidad para eliminar un curso específico.
Estructura Común
El archivo CourseController.php suele tener una estructura similar a la siguiente:
<?php
namespace app\controllers;
use Yii;use app\models\Course;use app\models\CourseSearch;use yii\web\Controller;use yii\web\NotFoundHttpException;use yii\filters\VerbFilter;
/** * CourseController implements the CRUD actions for Course model. */class CourseController extends Controller{ /** * @inheritDoc */ public function behaviors() { return array_merge( parent::behaviors(), [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], ] ); }
/** * Lists all Course models. * * @return string */ public function actionIndex() { $searchModel = new CourseSearch(); $dataProvider = $searchModel->search($this->request->queryParams);
return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }
/** * Displays a single Course model. * @param int $id ID * @return string * @throws NotFoundHttpException if the model cannot be found */ public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); }
/** * Creates a new Course model. * If creation is successful, the browser will be redirected to the 'view' page. * @return string|\yii\web\Response */ public function actionCreate() { $model = new Course();
if ($this->request->isPost) { if ($model->load($this->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } } else { $model->loadDefaultValues(); }
return $this->render('create', [ 'model' => $model, ]); }
/** * Updates an existing Course model. * If update is successful, the browser will be redirected to the 'view' page. * @param int $id ID * @return string|\yii\web\Response * @throws NotFoundHttpException if the model cannot be found */ public function actionUpdate($id) { $model = $this->findModel($id);
if ($this->request->isPost && $model->load($this->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); }
return $this->render('update', [ 'model' => $model, ]); }
/** * Deletes an existing Course model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param int $id ID * @return \yii\web\Response * @throws NotFoundHttpException if the model cannot be found */ public function actionDelete($id) { $this->findModel($id)->delete();
return $this->redirect(['index']); }
/** * Finds the Course model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param int $id ID * @return Course the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Course::findOne($id)) !== null) { return $model; }
throw new NotFoundHttpException(Yii::t('app', 'The requested page does not exist.')); }}Parámetros
- Namespace: Define el espacio de nombres del controlador, que es
app\controllers. - Modelos: Utiliza el modelo
Coursepara interactuar con la base de datos. - Acciones: Implementa acciones para listar, ver, crear, actualizar y eliminar cursos.
- Comportamientos: Define comportamientos como el manejo de verbos HTTP para las acciones.
English
Technical Documentation for the File CourseController.php
Folder Definition
The CourseController.php file is located in the controllers folder of a Yii2 project. This file is responsible for handling actions related to the Course model, which is typically used to manage courses in the application.
Purpose
The purpose of the CourseController.php file is to implement CRUD (Create, Read, Update, Delete) actions for the Course model. This allows administrators and users to manage courses through the user interface, facilitating the creation, viewing, editing, and deletion of courses.
Functions
- List Courses: Provides an action to list all available courses in the application.
- View Course: Allows users to view the details of a specific course.
- Create Course: Facilitates the creation of a new course through a form.
- Update Course: Allows editing of an existing course.
- Delete Course: Provides functionality to delete a specific course.
Common Structure
The CourseController.php file typically has a structure similar to the following:
<?php
namespace app\controllers;
use Yii;use app\models\Course;use app\models\CourseSearch;use yii\web\Controller;use yii\web\NotFoundHttpException;use yii\filters\VerbFilter;
/** * CourseController implements the CRUD actions for Course model. */class CourseController extends Controller{ /** * @inheritDoc */ public function behaviors() { return array_merge( parent::behaviors(), [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], ] ); }
/** * Lists all Course models. * * @return string */ public function actionIndex() { $searchModel = new CourseSearch(); $dataProvider = $searchModel->search($this->request->queryParams);
return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }
/** * Displays a single Course model. * @param int $id ID * @return string * @throws NotFoundHttpException if the model cannot be found */ public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); }
/** * Creates a new Course model. * If creation is successful, the browser will be redirected to the 'view' page. * @return string|\yii\web\Response */ public function actionCreate() { $model = new Course();
if ($this->request->isPost) { if ($model->load($this->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } } else { $model->loadDefaultValues(); }
return $this->render('create', [ 'model' => $model, ]); }
/** * Updates an existing Course model. * If update is successful, the browser will be redirected to the 'view' page. * @param int $id ID * @return string|\yii\web\Response * @throws NotFoundHttpException if the model cannot be found */ public function actionUpdate($id) { $model = $this->findModel($id);
if ($this->request->isPost && $model->load($this->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); }
return $this->render('update', [ 'model' => $model, ]); }
/** * Deletes an existing Course model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param int $id ID * @return \yii\web\Response * @throws NotFoundHttpException if the model cannot be found */ public function actionDelete($id) { $this->findModel($id)->delete();
return $this->redirect(['index']); }
/** * Finds the Course model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param int $id ID * @return Course the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Course::findOne($id)) !== null) { return $model; }
throw new NotFoundHttpException(Yii::t('app', 'The requested page does not exist.')); }}Parameters
- Namespace: Defines the namespace of the controller, which is
app\controllers. - Models: Uses the
Coursemodel to interact with the database. - Actions: Implements actions to list, view, create, update, and delete courses.
- Behaviors: Defines behaviors such as handling HTTP verbs for actions.