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.
- Cómo aprender desarrollo web solo
- ¿Es JavaScript una buena opción para construir chatbots?
- ¿Qué salario estoy buscando si quiero un trabajo de desarrollador web completo con conocimiento de React.js, Node.js, AJAX, jQuery, Express y MongoDB?
- ¿Cuál es la regla de accesibilidad y explica diferentes niveles de accesibilidad en Java?
- ¿Es React.js el desarrollo más importante en la historia de JavaScript?
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