Cómo guardar formularios usando transacciones de bases de datos en el marco de Yii

Aunque Yii DAO puede manejar prácticamente cualquier tarea relacionada con la base de datos, lo más probable es que gastemos el 90% de nuestro tiempo en escribir algunas declaraciones SQL que realizan las operaciones CRUD comunes (crear, leer, actualizar y eliminar). También es difícil mantener nuestro código cuando se mezclan con sentencias SQL. Para resolver estos problemas, podemos usar Active Record.

Active Record (AR) es una técnica popular de mapeo relacional de objetos (ORM). Cada clase AR representa una tabla (o vista) de la base de datos cuyos atributos se representan como las propiedades de la clase AR, y una instancia AR representa una fila en esa tabla. Las operaciones CRUD comunes se implementan como métodos AR. Como resultado, podemos acceder a nuestros datos de una manera más orientada a objetos.

Usando Transacción con AR

Cada instancia de AR contiene una propiedad llamada dbConnection que es una instancia de CDbConnection. Por lo tanto, podemos usar la función de transacción proporcionada por Yii DAO si se desea al trabajar con AR:

$ modelo = Post :: modelo ();
$ transacción = $ modelo-> dbConnection-> beginTransaction ();
tratar
{
// buscar y guardar son dos pasos que pueden ser intervenidos por otra solicitud
// por lo tanto, utilizamos una transacción para garantizar la coherencia e integridad
$ post = $ modelo-> findByPk (10);
$ post-> title = ‘nuevo título de publicación’;
if ($ post-> save ())
$ transacción-> commit ();
más
$ transacción-> rollback ();
}
captura (Excepción $ e)
{
$ transacción-> rollback ();
tirar $ e;
}

Referencia: Guardar formularios utilizando transacciones de bases de datos en Yii | Devslounge

Eso es realmente simple en Yii … Creo que te refieres a Yii2.

Primero, tu forma. ¿Qué tipo de datos está agregando?

Por ejemplo, está guardando una fila de [personas] con un nombre y un correo electrónico .

Segundo, necesitas crear un modelo. Yii2 usa algo llamado activerecord, que es un estilo de codificación donde el modelo (‘activerecord’) hace todo el trabajo pesado.

Cuál es una clase que maneja cualquier cosa que tenga que ver con la tabla de personas. Busque Gii y modelos.

$ cliente = nuevo cliente ();
$ cliente-> nombre = ‘James’;
$ customer-> email = ‘ [correo electrónico protegido] ‘;
$ cliente-> guardar ();

Crear un nuevo cliente

Rellene las variables con nombre y correo electrónico.

Guarda el registro.

Eso es todo lo que necesitas hacer. El truco en Yii2 es asegurarse de crear la Vista del controlador del modelo correctamente.

Tengo un blog con algunos elementos clave extraídos para Yii2, así que eche un vistazo.

PaperlessCloud – Desarrollo web y marketing digital