Diferencia entre revisiones de «Indice»
(No se muestran 40 ediciones intermedias de 13 usuarios) | |||
Línea 1: | Línea 1: | ||
+ | <big>Nuevo manual actualizado para la v1 en español e ingles en [https://github.com/KumbiaPHP/Documentation/blob/master/es/index.md Manual KumbiaPHP en Github] | ||
+ | </big> | ||
+ | |||
Este manual esta portándose del [http://ufpr.dl.sourceforge.net/sourceforge/kumbia/Manual_Kumbia_PHP_Framework_v0-5.pdf Manual PDF de KumbiaPHP Framework]. | Este manual esta portándose del [http://ufpr.dl.sourceforge.net/sourceforge/kumbia/Manual_Kumbia_PHP_Framework_v0-5.pdf Manual PDF de KumbiaPHP Framework]. | ||
Línea 5: | Línea 8: | ||
= [[Agradecimientos|AGRADECIMIENTOS]] = | = [[Agradecimientos|AGRADECIMIENTOS]] = | ||
− | + | Este manual es para agradecer a los que con su tiempo y apoyo en gran o en poca medida han ayudado a que este framework sea cada día mejor. | |
+ | A todos ellos Gracias Totales: | ||
+ | Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com | ||
+ | Deivinson Tejeda deivinsontejeda@kumbiaphp.com | ||
+ | Emilio Silveira emilio.rst@kumbiaphp.com | ||
+ | César Caballero aka Phillipo phillipo@kumbiaphp.com | ||
= [[Prefacio|PREFACIO]] = | = [[Prefacio|PREFACIO]] = | ||
Línea 110: | Línea 118: | ||
####[[MODELOS#table_exists()|table_exists()]] | ####[[MODELOS#table_exists()|table_exists()]] | ||
− | =[[ActiveRecord|ACTIVE RECORD]]= | + | ==[[ActiveRecord|ACTIVE RECORD]]== |
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]] | #[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]] | ||
Línea 117: | Línea 125: | ||
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]] | #[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]] | ||
− | ==[[CRUD|CRUD: Create, Read, Update, Delete]]== | + | ===[[CRUD|CRUD: Create, Read, Update, Delete]]=== |
#[[CRUD#Creando Registros|Creando Registros]] | #[[CRUD#Creando Registros|Creando Registros]] | ||
Línea 127: | Línea 135: | ||
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]] | #[[CRUD#Propiedades Soportadas|Propiedades Soportadas]] | ||
− | ==[[Convenciones en ActiveRecord]]== | + | ===[[Convenciones en ActiveRecord]]=== |
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]] | #[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]] | ||
Línea 135: | Línea 143: | ||
#[[Convenciones en ActiveRecord#campo_in|campo_in]] | #[[Convenciones en ActiveRecord#campo_in|campo_in]] | ||
− | ==[[Convenciones para RDBMs]]== | + | ===[[Convenciones para RDBMs]]=== |
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]] | #[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]] | ||
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]] | #[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]] | ||
− | =ACTIVE RECORD API= | + | ==ACTIVE RECORD API== |
− | + | A continuación veremos una referencia de los métodos que posee la clase ActiveRecord y | |
− | ==[[Consultas]]== | + | su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente: |
− | + | ===[[Consultas]]=== | |
+ | Métodos para hacer consulta de Registros: | ||
#[[Consultas#distinct|distinct]] | #[[Consultas#distinct|distinct]] | ||
#[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]] | #[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]] | ||
Línea 156: | Línea 165: | ||
#[[Consultas#find_all_by_*campo*|find_all_by_*campo*]] | #[[Consultas#find_all_by_*campo*|find_all_by_*campo*]] | ||
− | ==[[Conteos y Sumatorias]]== | + | ===[[Conteos y Sumatorias]]=== |
#[[Conteos y Sumatorias#count|count]] | #[[Conteos y Sumatorias#count|count]] | ||
Línea 162: | Línea 171: | ||
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]] | #[[Conteos y Sumatorias#count_by_sql|count_by_sql]] | ||
− | ==[[Promedios, Máximo y Mínimo]]== | + | ===[[Promedios, Máximo y Mínimo]]=== |
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#average|average]] | #[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#average|average]] | ||
Línea 168: | Línea 177: | ||
#[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#minimum|minimum]] | #[[Promedios,_M%C3%A1ximo_y_M%C3%ADnimo#minimum|minimum]] | ||
− | ==[[Creación-Actualización-Borrado de Registros]]== | + | ===[[Creación-Actualización-Borrado de Registros]]=== |
#[[Creación-Actualización-Borrado de Registros#create|create]] | #[[Creación-Actualización-Borrado de Registros#create|create]] | ||
Línea 179: | Línea 188: | ||
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]] | #[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]] | ||
− | ==[[Validación]]== | + | ===[[Validación]]=== |
#[[Validación#validates_presence_of|validates_presence_of]] | #[[Validación#validates_presence_of|validates_presence_of]] | ||
Línea 189: | Línea 198: | ||
#[[Validación#validates_format_of|validates_format_of]] | #[[Validación#validates_format_of|validates_format_of]] | ||
− | ==[[Transacciones]]== | + | ===[[Transacciones]]=== |
#[[Transacciones#commit()|commit()]] | #[[Transacciones#commit()|commit()]] | ||
Línea 195: | Línea 204: | ||
#[[Transacciones#rollback()|rollback()]] | #[[Transacciones#rollback()|rollback()]] | ||
− | ==[[Otros Métodos]]== | + | ===[[Otros Métodos]]=== |
#[[Otros Métodos#sql(string $sql)|sql(string $sql)]] | #[[Otros Métodos#sql(string $sql)|sql(string $sql)]] | ||
− | ==[[Callbacks ActiveRecord]]== | + | ===[[Callbacks ActiveRecord]]=== |
#[[Callbacks ActiveRecord#Introduccion|Introduccion]] | #[[Callbacks ActiveRecord#Introduccion|Introduccion]] | ||
Línea 217: | Línea 226: | ||
#[[Callbacks ActiveRecord#after_delete|after_delete]] | #[[Callbacks ActiveRecord#after_delete|after_delete]] | ||
− | ==[[Asociaciones]]== | + | ===[[Asociaciones]]=== |
#[[Asociaciones#Introducción|Introducción]] | #[[Asociaciones#Introducción|Introducción]] | ||
Línea 225: | Línea 234: | ||
#[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]] | #[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]] | ||
− | ==[[Paginadores]]== | + | ===[[Paginadores]]=== |
#[[Paginadores#Paginate|Paginate]] | #[[Paginadores#Paginate|Paginate]] | ||
Línea 232: | Línea 241: | ||
#[[Paginadores#Ejemplo completo de uso del paginador|Ejemplo completo de uso del paginador]] | #[[Paginadores#Ejemplo completo de uso del paginador|Ejemplo completo de uso del paginador]] | ||
+ | =[[Application controller| APPLICATION CONTROLLER]]= | ||
+ | === [[Application_controller#M.C3.A9todos_de_la_Clase_ApplicationController| Métodos de la Clase ApplicationController]] === | ||
+ | La clase posee una serie de métodos que son útiles para el trabajo con controladores. | ||
+ | = Métodos de la Clase ApplicationController = | ||
+ | |||
+ | La clase posee una serie de métodos que son útiles para el trabajo con controladores. | ||
+ | |||
+ | == render($view) == | ||
+ | |||
+ | Visualiza una vista que pertenece al mismo controlador. | ||
+ | |||
+ | '''Ejemplos de uso:''' | ||
+ | <?php | ||
+ | class ProductosController extends ApplicationController { | ||
+ | function index(){ | ||
+ | $this->render('consultar'); | ||
+ | } | ||
+ | } //fin de la clase | ||
+ | ?> | ||
+ | En este caso se visualizaría la vista views/productos/consultar.phtml | ||
+ | |||
+ | == redirect($url, $seconds=0.5) == | ||
+ | Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado | ||
+ | |||
+ | '''Ejemplos de uso:''' | ||
+ | <?php | ||
+ | class ProductosController extends ApplicationController { | ||
+ | function index(){ | ||
+ | $this->redirect('facturas/nueva', 2); | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | En el ejemplo va a facturas/nueva después de 2 segundos | ||
+ | |||
+ | == post($value) == | ||
+ | |||
+ | Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar | ||
+ | al array asociativo. | ||
+ | |||
+ | == get($value) == | ||
+ | |||
+ | Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para pasar al array asociativo. | ||
+ | |||
+ | == request($value) == | ||
+ | |||
+ | Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al | ||
+ | array asociativo. | ||
+ | |||
+ | == render_partial($name) == | ||
+ | Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo: | ||
+ | |||
+ | '''Ejemplos de uso:''' | ||
+ | <?php | ||
+ | class ProductosController extends ApplicationController { | ||
+ | function index(){ | ||
+ | $this->render_partial('mostrar_menu'); | ||
+ | }//fin del metodo | ||
+ | }//fin de la clase | ||
+ | ?> | ||
+ | |||
+ | En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml | ||
+ | |||
+ | == route_to([params: valor]) == | ||
+ | Hace el enrutamiento desde un controlador a otro, o desde una acción a otra. Recibe los parámetros | ||
+ | con nombre: | ||
+ | • controller: A qué controlador se va a redireccionar | ||
+ | • action: A que acción se va a redireccionar | ||
+ | • id: Id de la redirección | ||
+ | |||
+ | '''Ejemplos:''' | ||
+ | return $this->route_to("controller: clientes", "action: consultar", "id:1"); | ||
+ | |||
+ | El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando están siendo redireccionados en la aplicación. | ||
+ | |||
+ | == redirect($url_controlador) == | ||
+ | Realiza un redireccionamiento a otro controlador/accion mediante HTTP. Es útil cuando queremos hacer | ||
+ | una real redirección que incluso cambie la URL que aparece en el | ||
+ | explorador. | ||
+ | |||
+ | '''Ejemplo:''' | ||
+ | $this->redirect(“/productos/query”); | ||
+ | |||
+ | == cache_layout($minutes) == | ||
+ | Caché de la vista views/layout/ correspondiente al controlador durante $minutes. | ||
+ | |||
+ | == not_found($controller, $action) === | ||
+ | Puedes definir el método not_found en cualquier controlador, en caso de estar definido se llamará | ||
+ | cuando no encuentre definida alguna acción así es más fácil controlar este tipo de errores: | ||
+ | |||
+ | ''' Ejemplo ''' | ||
+ | <?php | ||
+ | class PruebaController extends ApplicationController { | ||
+ | function index(){ | ||
+ | $this->render_text("Este es el index"); | ||
+ | } | ||
+ | function not_found($controller, $action){ | ||
+ | Flash::error("No esta definida la accion $action, redireccionando a index..."); | ||
+ | return $this->route_to('action: index'); | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | NOTA: Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto | ||
+ | hace que no se haga necesario la implementacion del metodo not_found, ya que cuando no exista un controller o una acción se renderizara dicha vista, esta puede ser totalmente personalizada de manera que sea mas comodo el desarrollo. | ||
+ | |||
+ | == set_response($type)== | ||
+ | Especifica el tipo de respuesta que va a generar el controlador. Cuando es el valor de $type | ||
+ | es view solamente envía la salida de la vista más no del layout, el template o cualquier cabecera | ||
+ | html. Es ideal en salidas AJAX o PDF. Otro valor para $type es XML. | ||
+ | |||
+ | '''Ejemplo''' | ||
+ | <?php | ||
+ | class PruebaController extends ApplicationController { | ||
+ | function accion_ajax(){ | ||
+ | $this->set_response(“view”); | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | == is_alnum($valor) == | ||
+ | Evalúa si un campo es alfanumérico o no. Es útil para validar la entrada de datos al | ||
+ | recibirlos por parte de usuarios. | ||
+ | |||
+ | <?php | ||
+ | class PruebaController extends ApplicationController { | ||
+ | function adicionar(){ | ||
+ | $nombre = $this->request(“nombre”); | ||
+ | if($this->is_alnum($nombre)==false){ | ||
+ | Flash::error(“Entrada invalidad para precio”); | ||
+ | return; | ||
+ | } | ||
+ | /* ..*/ | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | == load_record($record) == | ||
+ | Carga los campos de un registro ActiveRecord como atributos del controlador, recibe | ||
+ | como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un | ||
+ | string este debe corresponder al nombre de un modelo Soporta argumento variable. | ||
+ | field: campos a cargar separados por coma | ||
+ | except: campos que no se cargaran separados por coma | ||
+ | suffix: sufijo para el atributo en el controlador | ||
+ | preffix: prefijo para el atributo en el controlador | ||
− | = | + | //Ejemplo1: |
− | == | + | $usuario = $this->Usuario->find(1); |
− | == [[ | + | $this->load_record($usuario); |
− | == [[ | + | |
− | == [[Enrutamiento y redirecciones]] == | + | //Ejemplo2: |
+ | $usuario = $this->Usuario->find(); | ||
+ | $this->load_record($usuario, 'except: id, sexo'); | ||
+ | |||
+ | //Ejemplo3: | ||
+ | $usuario = $this->Usuario->find(0); | ||
+ | $this->load_record($usuario, 'field: nombre, apellido'); | ||
+ | |||
+ | //Ejemplo4: | ||
+ | $usuario = $this->Usuario->find(1); | ||
+ | $this->load_record($usuario, 'preffix: c_'); | ||
+ | |||
+ | //Ejemplo5: | ||
+ | $this->load_record('Usuario'); | ||
+ | |||
+ | //Ejemplo6: | ||
+ | $this->load_record('Usuario', 'field: nombre, apellido'); | ||
+ | |||
+ | == is_numeric($valor) == | ||
+ | Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios. | ||
+ | |||
+ | <?php | ||
+ | class PruebaController extends ApplicationController { | ||
+ | function adicionar(){ | ||
+ | $precio = $this->request(“precio”); | ||
+ | if($this->is_numeric($precio)!= '1'){ | ||
+ | Flash::error(“Entrada invalida para precio”); | ||
+ | return; | ||
+ | } | ||
+ | /* ..*/ | ||
+ | } | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | ===[[Obtener valores desde el controller]] === | ||
+ | |||
+ | ===[[ApplicationControllerBase| ApplicationControllerBase (Clase padre)]] === | ||
+ | |||
+ | ===[[Enrutamiento y redirecciones]] === | ||
+ | |||
+ | =[[Vistas|VISTAS Y HELPERS]]= | ||
− | =[[ | + | #[[Vistas#¿Porque usar Vistas?|¿Porque usar vistas?]] |
+ | ===[[Vistas#Uso de Vistas|Vistas]]=== | ||
+ | ===[[Vistas#Uso de Layouts|Layouts]]=== | ||
+ | ===[[Vistas#Uso de Templates|Templates]]=== | ||
+ | ===[[Vistas#Uso de Partials|Partials]]=== | ||
+ | ===[[Vistas#Uso de CCS en Kumbia|CCS en KumbiaPHP]]=== | ||
+ | ===[[Vistas#Uso de content()|content()]]=== | ||
+ | ==[[Vistas#|Helpers]]== | ||
=[[AJAX]]= | =[[AJAX]]= | ||
Línea 252: | Línea 451: | ||
=[[GENERADOR DE FORMULARIOS]]= | =[[GENERADOR DE FORMULARIOS]]= | ||
+ | |||
+ | #[[GENERADOR DE FORMULARIOS#|Tipos de Formularios]] | ||
+ | #[[GENERADOR DE FORMULARIOS#|Ventajas Generadores de Formularios]] | ||
+ | #[[GENERADOR DE FORMULARIOS#|Desventajas Generadores de Formularios]] | ||
=[[EJEMPLOS]]= | =[[EJEMPLOS]]= | ||
=[[GLOSARIO]]= | =[[GLOSARIO]]= |
Revisión del 13:20 26 may 2020
Nuevo manual actualizado para la v1 en español e ingles en Manual KumbiaPHP en Github
Este manual esta portándose del Manual PDF de KumbiaPHP Framework.
Esta abierto, para que la comunidad ayude a portarlo y mejorarlo. Más adelante, el manual en PDF se creará de este wiki.
Sumario
- 1 AGRADECIMIENTOS
- 2 PREFACIO
- 3 EMPEZANDO CON KUMBIA PHP FRAMEWORK
- 4 TRABAJANDO CON KUMBIA PHP FRAMEWORK
- 5 MODELOS
- 6 APPLICATION CONTROLLER
- 7 Métodos de la Clase ApplicationController
- 7.1 render($view)
- 7.2 redirect($url, $seconds=0.5)
- 7.3 post($value)
- 7.4 get($value)
- 7.5 request($value)
- 7.6 render_partial($name)
- 7.7 route_to([params: valor])
- 7.8 redirect($url_controlador)
- 7.9 cache_layout($minutes)
- 7.10 not_found($controller, $action) =
- 7.11 set_response($type)
- 7.12 is_alnum($valor)
- 7.13 load_record($record)
- 8 VISTAS Y HELPERS
- 9 AJAX
- 10 EXTENSIONS (Módulos extras de KumbiaPHP)
- 11 GENERADOR DE FORMULARIOS
- 12 EJEMPLOS
- 13 GLOSARIO
AGRADECIMIENTOS
Este manual es para agradecer a los que con su tiempo y apoyo en gran o en poca medida han ayudado a que este framework sea cada día mejor. A todos ellos Gracias Totales: Andres Felipe Gutierrez gutierrezandresfelipe@gmail.com Deivinson Tejeda deivinsontejeda@kumbiaphp.com Emilio Silveira emilio.rst@kumbiaphp.com César Caballero aka Phillipo phillipo@kumbiaphp.com
PREFACIO
- Sobre este libro
- Sobre Kumbia
- Sobre la comunidad
- Historia de Kumbia
- Que aporta Kumbia
- ¿Porque usar Kumbia?
- Modelo, Vista, Controlador (MVC)
EMPEZANDO CON KUMBIA PHP FRAMEWORK
Instalar Kumbia
- Requisitos
- Descargar Kumbia
- Configuración de módulos (Apache, PHP y bbdd)
- Configurar XAMPP
- Configurar Apache2Triad
- Verificar la instalación de Kumbia
Estructura de Kumbia
Características avanzadas
- ¡Parámetros con Nombre!
- Obtener valores en una aplicación Kumbia
- Uso de Paquetes (Namespaces)
- Programación modular
Primera Aplicación en Kumbia
- Creando una nueva aplicación
- Hola Kumbia
- Kumbia URLS
- Nuestra Primera Acción
- Agregando más Contenido
- Repitiendo la Historia
TRABAJANDO CON KUMBIA PHP FRAMEWORK
MODELOS
- Introducción
- ¿Por qué usar una capa de Abstracción?
- Capa de Abstracción Independiente en Kumbia
- Adaptadores Kumbia
- Esquema de Acceso a BB.DD en Kumbia
- Modelos
ACTIVE RECORD
- Ventajas del ActiveRecord
- Crear un Modelo en Kumbia PHP Framework
- Columnas y Atributos
- Llaves Primarias y el uso de IDs
CRUD: Create, Read, Update, Delete
- Creando Registros
- Consultando Registros
- El poderoso Find
- Promedio, Contando, Sumando, Mínimo y Máximo
- Actualizando Registros existentes
- Borrando Registros
- Propiedades Soportadas
Convenciones en ActiveRecord
Convenciones para RDBMs
ACTIVE RECORD API
A continuación veremos una referencia de los métodos que posee la clase ActiveRecord y su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente:
Consultas
Métodos para hacer consulta de Registros:
- distinct
- find_all_by_sql(string $sql)
- find_by_sql(string $sql)
- find_first
- find
- select_one(string $select query)
- select_one(string $select query) (static)
- exists
- find_all_by
- find_by_*campo*
- find_all_by_*campo*
Conteos y Sumatorias
Promedios, Máximo y Mínimo
Creación-Actualización-Borrado de Registros
Validación
- validates_presence_of
- validates_length_of
- validates_numericality_of
- validates_email_in
- validates_uniqueness_of
- validates_date_in
- validates_format_of
Transacciones
Otros Métodos
Callbacks ActiveRecord
- Introduccion
- before_validation
- before_validation_on_create
- before_validation_on_update
- after_validation_on_create
- after_validation_on_update
- after_validation
- before_save
- before_update
- before_create
- after_update
- after_create
- after_save
- before_delete
- after_delete
Asociaciones
- Introducción
- Pertenece (belongs_to)
- Tiene un (has_one)
- Tiene muchos (has_many)
- Tiene y pertenece a muchos (has_and_belongs_to_many)
Paginadores
APPLICATION CONTROLLER
Métodos de la Clase ApplicationController
La clase posee una serie de métodos que son útiles para el trabajo con controladores.
Métodos de la Clase ApplicationController
La clase posee una serie de métodos que son útiles para el trabajo con controladores.
render($view)
Visualiza una vista que pertenece al mismo controlador.
Ejemplos de uso:
<?php class ProductosController extends ApplicationController { function index(){ $this->render('consultar'); } } //fin de la clase
?> En este caso se visualizaría la vista views/productos/consultar.phtml
redirect($url, $seconds=0.5)
Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado
Ejemplos de uso: <?php
class ProductosController extends ApplicationController { function index(){ $this->redirect('facturas/nueva', 2); } }
?>
En el ejemplo va a facturas/nueva después de 2 segundos
post($value)
Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para pasar al array asociativo.
get($value)
Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para pasar al array asociativo.
request($value)
Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para pasar al array asociativo.
render_partial($name)
Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo:
Ejemplos de uso: <?php
class ProductosController extends ApplicationController { function index(){ $this->render_partial('mostrar_menu'); }//fin del metodo }//fin de la clase
?>
En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml
route_to([params: valor])
Hace el enrutamiento desde un controlador a otro, o desde una acción a otra. Recibe los parámetros
con nombre:
• controller: A qué controlador se va a redireccionar • action: A que acción se va a redireccionar • id: Id de la redirección
Ejemplos: return $this->route_to("controller: clientes", "action: consultar", "id:1");
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando están siendo redireccionados en la aplicación.
redirect($url_controlador)
Realiza un redireccionamiento a otro controlador/accion mediante HTTP. Es útil cuando queremos hacer una real redirección que incluso cambie la URL que aparece en el
explorador.
Ejemplo: $this->redirect(“/productos/query”);
cache_layout($minutes)
Caché de la vista views/layout/ correspondiente al controlador durante $minutes.
not_found($controller, $action) =
Puedes definir el método not_found en cualquier controlador, en caso de estar definido se llamará cuando no encuentre definida alguna acción así es más fácil controlar este tipo de errores:
Ejemplo <?php
class PruebaController extends ApplicationController { function index(){ $this->render_text("Este es el index"); } function not_found($controller, $action){ Flash::error("No esta definida la accion $action, redireccionando a index..."); return $this->route_to('action: index'); } }
?> NOTA: Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto hace que no se haga necesario la implementacion del metodo not_found, ya que cuando no exista un controller o una acción se renderizara dicha vista, esta puede ser totalmente personalizada de manera que sea mas comodo el desarrollo.
set_response($type)
Especifica el tipo de respuesta que va a generar el controlador. Cuando es el valor de $type es view solamente envía la salida de la vista más no del layout, el template o cualquier cabecera html. Es ideal en salidas AJAX o PDF. Otro valor para $type es XML.
Ejemplo <?php
class PruebaController extends ApplicationController { function accion_ajax(){ $this->set_response(“view”); } }
?>
is_alnum($valor)
Evalúa si un campo es alfanumérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
<?php
class PruebaController extends ApplicationController { function adicionar(){ $nombre = $this->request(“nombre”); if($this->is_alnum($nombre)==false){ Flash::error(“Entrada invalidad para precio”); return; } /* ..*/ } }
?>
load_record($record)
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un string este debe corresponder al nombre de un modelo Soporta argumento variable.
field: campos a cargar separados por coma except: campos que no se cargaran separados por coma suffix: sufijo para el atributo en el controlador preffix: prefijo para el atributo en el controlador
//Ejemplo1: $usuario = $this->Usuario->find(1); $this->load_record($usuario);
//Ejemplo2: $usuario = $this->Usuario->find(); $this->load_record($usuario, 'except: id, sexo');
//Ejemplo3: $usuario = $this->Usuario->find(0); $this->load_record($usuario, 'field: nombre, apellido');
//Ejemplo4: $usuario = $this->Usuario->find(1); $this->load_record($usuario, 'preffix: c_');
//Ejemplo5: $this->load_record('Usuario');
//Ejemplo6: $this->load_record('Usuario', 'field: nombre, apellido');
== is_numeric($valor) ==
Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
<?php
class PruebaController extends ApplicationController { function adicionar(){ $precio = $this->request(“precio”); if($this->is_numeric($precio)!= '1'){ Flash::error(“Entrada invalida para precio”); return; } /* ..*/ } }
?>