Introducci贸n a desarrollo web con PHP y Yii
Desarrollo web con G2: Framework PHP pr谩ctico y seguro
Desarrollo web con PHP y Yii: Instalaci贸n y uso eficiente
Arquitectura MVC: Modelo, Vista y Controlador
Instalaci贸n y Configuraci贸n de Yii en Entorno Local
Estructura de Archivos en Proyectos Yii2 B谩sicos
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
Creaci贸n de una Biblioteca Personal con Yii2 y Bases de Datos
Creaci贸n y Gesti贸n de Bases de Datos en SQL: Tablas y Buenas Pr谩cticas
Tablas de Clubes y Miembros en MySQL
Quiz: Esquema de la aplicaci贸n
Modelos, vistas y controladores
Comandos en Yii: Creaci贸n y Ejecuci贸n de Controladores en Terminal
Modelos en PHP: Creaci贸n y Manipulaci贸n de Datos
ActiveRecord: Integraci贸n de Bases de Datos en Frameworks PHP y Ruby
Gesti贸n de Autores y Libros en Yii: Creaci贸n y Consulta Eficiente
Relaciones ActiveRecord en Yii: Conectar Libros y Autores
Relaciones de uno a muchos en Yii: Obtener libros de un autor
Creaci贸n y Uso de Controladores Web en Yii Framework
Redirecci贸n y manejo de errores en controladores Yii
URLs Amigables: Gesti贸n y Creaci贸n con URL Manager en PHP
Vistas en PHP con Yii y Smarty para Web Apps Sin Frameworks Frontend
Plantillas Smarty con Yii: Instalaci贸n y Uso B谩sico
Quiz: Modelos, vistas y controladores
Manejo de usuarios con Yii2
Creaci贸n y Gesti贸n de Usuarios en Aplicaciones Web Seguras
Ofuscaci贸n y Validaci贸n de Contrase帽as en Yii Framework
Implementaci贸n de Login y Gesti贸n de Usuarios en Yii2
Controlador en Yii: Creaci贸n y Manejo de Usuarios
Creaci贸n de Formularios con ActiveForm y Smarty en PHP
Validaci贸n de Datos en Modelos y Formularios con Yii2
Validaciones y Filtros en PHP para Gesti贸n de Usuarios
Quiz: Manejo de usuarios con Yii2
Enlaces, navegaci贸n y tablas intermedias
Creaci贸n y Gesti贸n de Libros en Aplicaciones Web
Crear y Gestionar Repisas de Libros en PHP
Condicionales y funciones para gestionar libros en la aplicaci贸n
Calificaci贸n de Libros con Validaci贸n en PHP y Yii Framework
Generaci贸n de Informaci贸n a Partir de Datos en Bases de Datos
Relaciones de Tablas en Bases de Datos: C谩lculo de Promedios
Modificaciones de Men煤 y Layout en Aplicaci贸n Web con G
Quiz: Enlaces, navegaci贸n y tablas intermedias
Despliegue y cierre del proyecto
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 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.
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
.
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.
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>
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]);
}
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.
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
驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?