Edición de «CRUD»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 3: | Línea 3: | ||
[[ActiveRecord]] implementa automáticamente las cuatro operaciones básicas sobre una tabla: Crear, Leer, Actualizar y Borrar. | [[ActiveRecord]] implementa automáticamente las cuatro operaciones básicas sobre una tabla: Crear, Leer, Actualizar y Borrar. | ||
− | + | ==Creando Registros== | |
+ | |||
+ | Manteniendo la idea del Objeto-Relacional podemos pensar que crear registros es lo mismo que crear objetos, entonces podríamos estar en lo cierto. Asignar a un objeto valores y ejecutar el método create o save es todo lo que tenemos que hacer. | ||
+ | |||
+ | Ejemplo | ||
+ | <pre> | ||
+ | $album = new Album(); | ||
+ | $album->nombre = “Take Off Your Pants and Jacket”; | ||
+ | $album->valor = 40000; | ||
+ | $album->save(); | ||
+ | </pre> | ||
+ | |||
+ | Adicionalmente a esto puede utilizar el método ‘create’ así como los métodos como ‘createfromrequest’ para crear nuevos registros. | ||
+ | |||
+ | Ejemplo | ||
+ | <pre> | ||
+ | $album = new Album(); | ||
+ | $album->nombre = “Take Off Your Pants and Jacket”; | ||
+ | $album->valor = 40000; | ||
+ | $album->create(); | ||
+ | |||
+ | $album = new Album(); | ||
+ | $album->create( | ||
+ | “nombre: Take Off Your Pants and Jacket”, | ||
+ | “valor: 40000” | ||
+ | ); | ||
+ | |||
+ | $album = new Album(); | ||
+ | $album->create(array( | ||
+ | “nombre” => “Take Off Your Pants and Jacket”, | ||
+ | “valor” => 40000 | ||
+ | )); | ||
+ | </pre> | ||
+ | |||
+ | También podemos crear un Nuevo registro a partir de los valores de $_REQUEST | ||
+ | |||
+ | Ejemplo | ||
+ | <pre> | ||
+ | $album = new Album(); | ||
+ | $album->create_from_request(); | ||
+ | </pre> | ||
+ | |||
+ | ==Consultando Registros== | ||
Para consultar en una base de datos tenemos que tener claro qué vamos a buscar, es decir definir un criterio de búsqueda. Este criterio le permite a [[ActiveRecord]] devolver el conjunto de objetos que coincidan con este y así poder trabajar esa información. | Para consultar en una base de datos tenemos que tener claro qué vamos a buscar, es decir definir un criterio de búsqueda. Este criterio le permite a [[ActiveRecord]] devolver el conjunto de objetos que coincidan con este y así poder trabajar esa información. | ||
Línea 10: | Línea 52: | ||
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
# Buscar el Producto con id = 38 | # Buscar el Producto con id = 38 | ||
$producto = $Productos->find(38); | $producto = $Productos->find(38); | ||
print $producto->nombre; # Imprime el nombre del producto id=38 | print $producto->nombre; # Imprime el nombre del producto id=38 | ||
− | </ | + | </pre> |
Igualmente necesitamos hacer consultas a partir de otros atributos del modelo no solamente a partir de su llave primaria. [[ActiveRecord]] proporciona una serie de parámetros para crear consultas especializadas que nos permitan acceder a los registros que necesitamos. Para ilustrar esto veamos: | Igualmente necesitamos hacer consultas a partir de otros atributos del modelo no solamente a partir de su llave primaria. [[ActiveRecord]] proporciona una serie de parámetros para crear consultas especializadas que nos permitan acceder a los registros que necesitamos. Para ilustrar esto veamos: | ||
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
# Buscar los Productos en estado = ‘C’ y cuyo valor sea menor a 15000 | # Buscar los Productos en estado = ‘C’ y cuyo valor sea menor a 15000 | ||
− | foreach( $Productos->find(“estado=’C’ and valor | + | foreach($Productos->find(“estado=’C’ and valor |
print $producto->nombre; | print $producto->nombre; | ||
} | } | ||
Línea 35: | Línea 77: | ||
“order: fecha desc”); | “order: fecha desc”); | ||
print $producto->nombre; | print $producto->nombre; | ||
− | </ | + | </pre> |
Cabe destacar que el uso de ‘find_first’ devuelve el primer registro que coincida con la búsqueda y ‘find’ todos los registros. | Cabe destacar que el uso de ‘find_first’ devuelve el primer registro que coincida con la búsqueda y ‘find’ todos los registros. | ||
Línea 48: | Línea 90: | ||
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
#Buscar los productos en estado = ‘$estado’ ordenado por fecha y valor | #Buscar los productos en estado = ‘$estado’ ordenado por fecha y valor | ||
− | foreach($Productos-> | + | foreach($Productos->find_first(“conditions: estado=’$estado’”, |
“order: fecha Desc, valor”, | “order: fecha Desc, valor”, | ||
“limit: 30”) as $prod){ | “limit: 30”) as $prod){ | ||
print $prod->nombre; | print $prod->nombre; | ||
} | } | ||
− | </ | + | </pre> |
Importante | Importante | ||
Advertencia: En Oracle la funcionalidad limit podría no funcionar como se espera. Utilice la condición rownum < numero_filas para hacer esto. | Advertencia: En Oracle la funcionalidad limit podría no funcionar como se espera. Utilice la condición rownum < numero_filas para hacer esto. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Promedio, Contando, Sumando, Mínimo y Máximo== | ==Promedio, Contando, Sumando, Mínimo y Máximo== | ||
Línea 74: | Línea 107: | ||
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
#Cuantos productos hay? | #Cuantos productos hay? | ||
print Productos->count(); | print Productos->count(); | ||
Línea 80: | Línea 113: | ||
#Cuantos productos hay con estado = 'A'? | #Cuantos productos hay con estado = 'A'? | ||
print Productos->count(“estado='A'”); | print Productos->count(“estado='A'”); | ||
− | </ | + | </pre> |
Las funciones de agrupación suma, mínimo, promedio y máximo, son utilizadas de esta forma: | Las funciones de agrupación suma, mínimo, promedio y máximo, son utilizadas de esta forma: | ||
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
#Cuantos suma el valor de todos los productos? | #Cuantos suma el valor de todos los productos? | ||
print Productos->sum(“valor”); | print Productos->sum(“valor”); | ||
Línea 100: | Línea 133: | ||
#El valor máximo de los productos activos? | #El valor máximo de los productos activos? | ||
print Productos->maximum(“valor”, “conditions: estado='A'”); | print Productos->maximum(“valor”, “conditions: estado='A'”); | ||
− | </ | + | </pre> |
==Actualizando Registros existentes== | ==Actualizando Registros existentes== | ||
− | Realmente no hay mucho que decir acerca de cómo actualizar registros. Si tienes un objeto [[ActiveRecord]] (por ejemplo un producto de la base de datos), puedes actualizar llamando su método save(). Si este objeto ha sido leído de la base de datos puedes actualizar el registro correspondiente mediante save, en caso de que no exista se insertará un registro nuevo. | + | Realmente no hay mucho que decir acerca de cómo actualizar registros. Si tienes un objeto [[ActiveRecord]] (por ejemplo un producto de la base de datos), puedes actualizar llamando su método save(). Si este objeto ha sido leído de la base de datos puedes actualizar el registro correspondiente mediante save, en caso de que no exista se insertará el un registro nuevo. |
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
$producto = $Productos->find(123); | $producto = $Productos->find(123); | ||
$producto->nombre = "Televisor"; | $producto->nombre = "Televisor"; | ||
$producto->save(); | $producto->save(); | ||
− | </ | + | </pre> |
Otra forma de actualizar registros es utilizar el método update() de esta forma: | Otra forma de actualizar registros es utilizar el método update() de esta forma: | ||
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
$producto = $Productos->find(456); | $producto = $Productos->find(456); | ||
$producto->update(“nombre: Televisor”, “cantidad: 2”); | $producto->update(“nombre: Televisor”, “cantidad: 2”); | ||
$producto->save(); | $producto->save(); | ||
− | </ | + | </pre> |
==Borrando Registros== | ==Borrando Registros== | ||
− | + | Realmente no hay mucho que decir acerca de cómo eliminar registros. Si tienes un objeto [[ActiveRecord]] (por ejemplo un producto de la base de datos), puedes eliminarlo llamando a su método delete(). | |
Ejemplo | Ejemplo | ||
− | < | + | <pre> |
$Productos->delete(123); | $Productos->delete(123); | ||
− | </ | + | </pre> |
==Propiedades Soportadas== | ==Propiedades Soportadas== |