Skip to content

Manual Técnico appServiserAdmin

Documentación Técnica del Archivo AnnouncementController.php en la Carpeta appServiserAdmin/controllers


Español

Definición de la Carpeta

El archivo AnnouncementController.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 Announcement, que generalmente se utiliza para gestionar anuncios en la aplicación.

Propósito

El propósito del archivo AnnouncementController.php es implementar las acciones CRUD (Crear, Leer, Actualizar, Eliminar) para el modelo de Announcement. Esto permite a los usuarios interactuar con los anuncios a través de la interfaz de usuario, permitiendo la creación, visualización, edición y eliminación de anuncios.

Funciones

  1. Listar Anuncios: Proporciona una acción para listar todos los anuncios disponibles en la aplicación.
  2. Ver Anuncio: Permite a los usuarios ver los detalles de un anuncio específico.
  3. Crear Anuncio: Facilita la creación de un nuevo anuncio a través de un formulario.
  4. Actualizar Anuncio: Permite la edición de un anuncio existente.
  5. Eliminar Anuncio: Proporciona la funcionalidad para eliminar un anuncio específico.

Estructura Común

El archivo AnnouncementController.php suele tener una estructura similar a la siguiente:

<?php
namespace app\controllers;
use Yii;
use app\models\Announcement;
use app\models\AnnouncementSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
/**
* AnnouncementController implements the CRUD actions for Announcement model.
*/
class AnnouncementController extends Controller
{
/**
* @inheritDoc
*/
public function behaviors()
{
return array_merge(
parent::behaviors(),
[
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
]
);
}
/**
* Lists all Announcement models.
*
* @return string
*/
public function actionIndex()
{
$searchModel = new AnnouncementSearch();
$dataProvider = $searchModel->search($this->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
/**
* Displays a single Announcement 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 Announcement model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return string|\yii\web\Response
*/
public function actionCreate()
{
$model = new Announcement();
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 Announcement 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 Announcement 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 Announcement 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 Announcement the loaded model
* @throws NotFoundHttpException if the model cannot be found
*/
protected function findModel($id)
{
if (($model = Announcement::findOne(['id' => $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 Announcement para interactuar con la base de datos.
  • Acciones: Implementa acciones para listar, ver, crear, actualizar y eliminar anuncios.
  • Comportamientos: Define comportamientos como el manejo de verbos HTTP para las acciones.

English

Technical Documentation for the File AnnouncementController.php

Folder Definition

The AnnouncementController.php file is located in the controllers folder of a Yii2 project. This file is responsible for handling actions related to the Announcement model, which is typically used to manage announcements in the application.

Purpose

The purpose of the AnnouncementController.php file is to implement CRUD (Create, Read, Update, Delete) actions for the Announcement model. This allows users to interact with announcements through the user interface, enabling the creation, viewing, editing, and deletion of announcements.

Functions

  1. List Announcements: Provides an action to list all available announcements in the application.
  2. View Announcement: Allows users to view the details of a specific announcement.
  3. Create Announcement: Facilitates the creation of a new announcement through a form.
  4. Update Announcement: Allows editing of an existing announcement.
  5. Delete Announcement: Provides functionality to delete a specific announcement.

Common Structure

The AnnouncementController.php file typically has a structure similar to the following:

<?php
namespace app\controllers;
use Yii;
use app\models\Announcement;
use app\models\AnnouncementSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
/**
* AnnouncementController implements the CRUD actions for Announcement model.
*/
class AnnouncementController extends Controller
{
/**
* @inheritDoc
*/
public function behaviors()
{
return array_merge(
parent::behaviors(),
[
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
]
);
}
/**
* Lists all Announcement models.
*
* @return string
*/
public function actionIndex()
{
$searchModel = new AnnouncementSearch();
$dataProvider = $searchModel->search($this->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
/**
* Displays a single Announcement 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 Announcement model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return string|\yii\web\Response
*/
public function actionCreate()
{
$model = new Announcement();
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 Announcement 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 Announcement 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 Announcement 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 Announcement the loaded model
* @throws NotFoundHttpException if the model cannot be found
*/
protected function findModel($id)
{
if (($model = Announcement::findOne(['id' => $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 Announcement model to interact with the database.
  • Actions: Implements actions to list, view, create, update, and delete announcements.
  • Behaviors: Defines behaviors such as handling HTTP verbs for actions.