Introducción a desarrollo web con PHP y Yii
¿Qué es Yii2?
¿Por qué usar PHP y Yii2?
Arquitectura modelo–vista–controlador
Instalación de Yii2
Estructura de una aplicación con Yii2
Configuración de variables de entorno
Quiz: Introducción a desarrollo web con PHP y Yii
Esquema de la aplicación
Proyecto: The Book Club
Creación del schema de la base de datos
Creación de tablas clubs y club_members
Quiz: Esquema de la aplicación
Modelos, vistas y controladores
Commands
Model
ActiveRecord
ActiveRecord de la clase author
Relational data: hasOne()
Relational data: hasMany()
Web Controllers
Controller de la clase author
Enrutamiento y creación de URLS con urlManager
Views
Configuración de vistas con Smarty
Quiz: Modelos, vistas y controladores
Manejo de usuarios con Yii2
Clase user
Autenticación de usuarios
Autenticación de usuarios: LoginForm
User input
Formulario de login con ActiveForm
Validación de modelo con core validators
Core validators: unique, filter, email
Quiz: Manejo de usuarios con Yii2
Enlaces, navegación y tablas intermedias
Dar de alta un libro
Asignación de libros a usuario
Asignación de libros a usuario: vista
Calificar un libro
Promedio de calificaciones de libro
Relaciones entre tablas intermedias con viaTable()
Enlaces y navegación
Quiz: Enlaces, navegación y tablas intermedias
Despliegue y cierre del proyecto
Despliegue de aplicación de Yii2 a Heroku
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Crear formularios en proyectos web puede ser una tarea complicada, pero gracias a las herramientas y frameworks adecuados, este proceso se simplifica notablemente. En este apartado, se incluye una guía paso a paso para manejar controladores y vistas utilizando Smarty y widgets. Es vital recordar que cada etapa es crucial para lograr que el formulario no solo funcione, sino también para que sea atractivo y fácil de usar.
Un formulario necesita tener, al menos, campos para recogida de datos y un botón de envío. Utilizar Active Form
a través de Smarty hace que la implementación sea más sencilla y eficaz.
<!-- Llamamos a la clase Active Form -->
{use class="G.widgets.ActiveForm" type="block"}
<!-- Se crea el formulario con el ID `new_user` -->
{$form | ActiveForm id="new_user" assign="form"}
<!-- Campo de texto para el nombre de usuario -->
{$form->field('user', 'username')}
<!-- Campo para la contraseña, con entrada oculta -->
{$form->field('user', 'password')->input('password')}
<!-- Campo para repetir la contraseña, como retrospectiva y para validación -->
{$form->field('user', 'password_repeat')->input('password')}
<!-- Biografía del usuario, como un textarea -->
{$form->field('user', 'bio')->textarea()}
<!-- Botón para enviar el formulario -->
<input type="submit" value="Guardar">
El código muestra cómo establecer un formulario con campos para el nombre de usuario, contraseña, repetición de contraseña (para validación futura) y biografía con un textarea
.
Una parte clave es cómo manejar eficientemente los datos que se obtienen del formulario. En el script, podemos observar que al crear un nuevo controlador para el usuario, los datos son capturados y procesados. Esto se hace utilizando la lógica de negocio que corresponde al controlador, y se simplifica el proceso usando Active Form en las vistas.
Adicionalmente, al implementar la validación en futuros pasos, se asegura la integridad de los datos y se protege el sistema, ya que errores como el ingreso de contraseñas incorrectas con el campo password_repeat
son capturados antes de proceder al almacenamiento de la base de datos.
Algo importante que agregar es la validación de usuario. El formulario no debería estar disponible para usuarios autenticados, pues estos no deberían crear múltiples cuentas. Para ello, se implementa una lógica dentro del controlador:
if (!G.App.User.isGuest()) {
G.App.Session.setFlash('warning', 'No puedes crear usuario estando logueado.');
return this.goHome();
}
Esta condición revisa si un usuario está logueado antes de permitirle el acceso a la creación de una nueva cuenta. Si el usuario está logueado, recibe un mensaje de alerta y es redirigido a la página principal, asegurando así que las funciones del formulario se mantengan adecuadamente restringidas a los visitantes.
Con el controlador y la vista en marcha, el siguiente paso es gestionar las validaciones y reglas de negocio. Es crucial implementar un sistema donde se verifique que:
Además, la implementación de estas funcionalidades garantizará que las acciones del usuario se procesen, almacenen y utilicen de manera adecuada. ¡Continúa aprendiendo y expandiendo tus habilidades! Cada paso que des te acerca más al dominio completo del desarrollo con Smarty.
Aportes 1
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?