Introducci贸n a desarrollo web con PHP y Yii

1

Desarrollo web con G2: Framework PHP pr谩ctico y seguro

2

Desarrollo web con PHP y Yii: Instalaci贸n y uso eficiente

3

Arquitectura MVC: Modelo, Vista y Controlador

4

Instalaci贸n y Configuraci贸n de Yii en Entorno Local

5

Estructura de Archivos en Proyectos Yii2 B谩sicos

6

Configuraci贸n B谩sica de Proyectos en Yii con Variables de Entorno

Quiz: Introducci贸n a desarrollo web con PHP y Yii

Esquema de la aplicaci贸n

7

Creaci贸n de una Biblioteca Personal con Yii2 y Bases de Datos

8

Creaci贸n y Gesti贸n de Bases de Datos en SQL: Tablas y Buenas Pr谩cticas

9

Tablas de Clubes y Miembros en MySQL

Quiz: Esquema de la aplicaci贸n

Modelos, vistas y controladores

10

Comandos en Yii: Creaci贸n y Ejecuci贸n de Controladores en Terminal

11

Modelos en PHP: Creaci贸n y Manipulaci贸n de Datos

12

ActiveRecord: Integraci贸n de Bases de Datos en Frameworks PHP y Ruby

13

Gesti贸n de Autores y Libros en Yii: Creaci贸n y Consulta Eficiente

14

Relaciones ActiveRecord en Yii: Conectar Libros y Autores

15

Relaciones de uno a muchos en Yii: Obtener libros de un autor

16

Creaci贸n y Uso de Controladores Web en Yii Framework

17

Redirecci贸n y manejo de errores en controladores Yii

18

URLs Amigables: Gesti贸n y Creaci贸n con URL Manager en PHP

19

Vistas en PHP con Yii y Smarty para Web Apps Sin Frameworks Frontend

20

Plantillas Smarty con Yii: Instalaci贸n y Uso B谩sico

Quiz: Modelos, vistas y controladores

Manejo de usuarios con Yii2

21

Creaci贸n y Gesti贸n de Usuarios en Aplicaciones Web Seguras

22

Ofuscaci贸n y Validaci贸n de Contrase帽as en Yii Framework

23

Implementaci贸n de Login y Gesti贸n de Usuarios en Yii2

24

Controlador en Yii: Creaci贸n y Manejo de Usuarios

25

Creaci贸n de Formularios con ActiveForm y Smarty en PHP

26

Validaci贸n de Datos en Modelos y Formularios con Yii2

27

Validaciones y Filtros en PHP para Gesti贸n de Usuarios

Quiz: Manejo de usuarios con Yii2

Enlaces, navegaci贸n y tablas intermedias

28

Creaci贸n y Gesti贸n de Libros en Aplicaciones Web

29

Crear y Gestionar Repisas de Libros en PHP

30

Condicionales y funciones para gestionar libros en la aplicaci贸n

31

Calificaci贸n de Libros con Validaci贸n en PHP y Yii Framework

32

Generaci贸n de Informaci贸n a Partir de Datos en Bases de Datos

33

Relaciones de Tablas en Bases de Datos: C谩lculo de Promedios

34

Modificaciones de Men煤 y Layout en Aplicaci贸n Web con G

Quiz: Enlaces, navegaci贸n y tablas intermedias

Despliegue y cierre del proyecto

35

Deploy de Aplicaciones en Heroku: Paso a Paso Pr谩ctico

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Crear y Gestionar Repisas de Libros en PHP

29/35
Recursos

驴C贸mo crear una nueva tabla y l贸gica de negocio en una aplicaci贸n?

Crear una nueva funcionalidad en una aplicaci贸n existente no tiene por qu茅 ser complicado. En este contenido, nos enfocaremos en c贸mo a帽adir una nueva funcionalidad que permite al usuario almacenar qu茅 libros posee. Desde la creaci贸n de una tabla hasta la implementaci贸n de la l贸gica de negocios, te mostraremos c贸mo construir y expandir un sistema de gesti贸n de libros. Acomp谩帽anos en este sencillo pero poderoso viaje de desarrollo.

驴C贸mo crear la tabla para almacenar los libros del usuario?

Una tabla en una base de datos es esencial para guardar informaci贸n relevante de los usuarios. Para empezar, definimos una nueva tabla llamada UserBooks que almacena datos sobre los libros que tiene cada usuario. La creaci贸n es bastante directa:

CREATE TABLE IF NOT EXISTS UserBooks (
  UserBookID INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  UserID INTEGER NOT NULL,
  BookID INTEGER NOT NULL,
  CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Esta tabla simple utiliza un UserBookID como clave primaria y enlaza los UserID y BookID.

驴C贸mo integrar la tabla con la l贸gica de negocios?

Una vez creada la tabla, el siguiente paso es integrar esta nueva funcionalidad en la l贸gica de nuestra aplicaci贸n, comenzando desde la vista hacia el backend.

  1. A帽adir un enlace en la vista del libro: Para empezar, en la vista detallada de cada libro, a帽adimos un enlace de HTML que permite al usuario indicar que posee dicho libro.

    <a href="controller.php?action=IownThisBook&book_id=<?= $book->id ?>">Tengo este libro</a>
    
  2. Manejando la acci贸n en el controlador: Es fundamental tener un controlador que procese esta informaci贸n. A帽adimos una funci贸n al controlador de libros para manejar la acci贸n de "Yo tengo este libro".

    public function actionIownThisBook($bookId) {
      if (Yii::$app->user->isGuest) {
        return $this->goHome();
      }
    
      $userBook = new UserBook();
      $userBook->userID = Yii::$app->user->identity->id;
      $userBook->bookID = $bookId;
      if ($userBook->save()) {
        Yii::$app->session->setFlash('success', 'Chido');
      }
    
      return $this->redirect(['book/detail', 'id' => $bookId]);
    }
    

驴C贸mo crear un modelo para la nueva tabla?

Los modelos son piezas clave que conectan la base de datos con la l贸gica de programaci贸n. Creamos un modelo para UserBook:

class UserBook extends \yii\db\ActiveRecord {
   public static function tableName() {
     return 'UserBooks';
   }
}

Este modelo es necesario para manejar la l贸gica de almacenamiento de la informaci贸n de los libros que poseen los usuarios.

驴Qu茅 consideraciones de seguridad y validaci贸n debo tener?

  • Validaciones de Usuario: Aseg煤rate de validar que el usuario est谩 autenticado antes de permitir el acceso a la funcionalidad de tener libros.

  • Validaci贸n de Existencia de Datos: Antes de guardar, podr铆as verificar que el libro realmente existe y que el usuario no est谩 intentando modificar datos no permitidos.

  • Uso de HTTP GET y POST: Esta implementaci贸n utiliza una consulta GET para se帽alar la propiedad de un libro; sin embargo, para acciones m谩s cr铆ticas, como calificar un libro, es preferible utilizar peticiones POST.

Con estos pasos, ampliamos una aplicaci贸n de libros, potenciando ligeramente su funcionalidad de manera eficaz. Aprende a aprovechar al m谩ximo la estructura de tu aplicaci贸n para desarrollar nuevas caracter铆sticas que tus usuarios apreciar谩n. 隆Sigue explorando nuevas posibilidades!

Aportes 2

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

porque no utiliza migrations? estar铆a padre que explicara esa parte y asi cada vez que hace cambios en la estructura de la tabla se tendr铆a un proceso que ejecutar
驴C贸mo carri帽os llego la vista en book/detail.tpl? Ya ni 茅l que anda dando el curso recuerda si lo dejo de tarea o si debe de estar en los recursos, muy mala planeaci贸n. Pierdo mi tiempo buscando c贸mo llego esos archivos y en los recursos tampoco esta. No muestra incluso si configuro algo. En ning煤n momento dejo algo de tarea馃槧.