Revisión actual |
Tu texto |
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 8: |
Línea 5: |
| | | |
| = [[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:
| + | = [[PREFACIO]] = |
− | 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#Sobre_este_libro|Sobre este libro]] | | #[[Prefacio#Sobre_este_libro|Sobre este libro]] |
Línea 45: |
Línea 37: |
| ##[[Instalar_Kumbia#Instalando_XAMPP_bajo_Windows|Instalando XAMPP bajo Windows]] | | ##[[Instalar_Kumbia#Instalando_XAMPP_bajo_Windows|Instalando XAMPP bajo Windows]] |
| ##[[Instalar_Kumbia#Instalando_XAMPP_bajo_GNU.2FLinux|Instalando XAMPP bajo GNU/Linux]] | | ##[[Instalar_Kumbia#Instalando_XAMPP_bajo_GNU.2FLinux|Instalando XAMPP bajo GNU/Linux]] |
− | ##[[Instalar_Kumbia#IInstalando XAMPP bajo Debian/Ubuntu Linux|Instalando XAMPP bajo Debian/Ubuntu Linux]] | + | ##Instalando XAMPP bajo Debian/Ubuntu Linux |
| #[[Instalar_Kumbia#Configurar_Apache2Triad|Configurar Apache2Triad]] | | #[[Instalar_Kumbia#Configurar_Apache2Triad|Configurar Apache2Triad]] |
− | #[[Instalar_Kumbia#Verificar la instalación de Kumbia|Verificar la instalación de Kumbia]] | + | #Verificar la instalación de Kumbia |
− | ##[[Instalar_Kumbia#Instalar Kumbia PHP en producción de forma segura| Instalar Kumbia PHP en producción de forma segura]] | + | #Instalar Kumbia PHP en producción de forma segura |
| | | |
− | == [[Estructura_de_Kumbia|Estructura de Kumbia]] == | + | == [[Estructura de Kumbia]] == |
| #[[Estructura_de_Kumbia#Introducci.C3.B3n|Introducción]] | | #[[Estructura_de_Kumbia#Introducci.C3.B3n|Introducción]] |
| #[[Estructura_de_Kumbia#Directorios_de_entorno|Directorios de entorno]] | | #[[Estructura_de_Kumbia#Directorios_de_entorno|Directorios de entorno]] |
Línea 83: |
Línea 75: |
| =[[MODELOS]]= | | =[[MODELOS]]= |
| | | |
− | #[[MODELOS#Introducción|Introducción]]
| + | #Introducción |
− | #[[MODELOS#¿Por qué usar una capa de Abstracción?|¿Por qué usar una capa de Abstracción?]]
| + | #¿Por qué usar una capa de Abstracción? |
− | #[[MODELOS#Capa de Abstracción Independiente en Kumbia|Capa de Abstracción Independiente en Kumbia ]] | + | #Capa de Abstracción Independiente en Kumbia |
− | #[[MODELOS#Adaptadores Kumbia|Adaptadores Kumbia]] | + | #Adaptadores Kumbia |
− | #[[MODELOS#Esquema de Acceso a BB.DD en Kumbia|Esquema de Acceso a BB.DD en Kumbia]]
| + | #Esquema de Acceso a BB.DD en Kumbia |
− | #[[MODELOS#Modelos|Modelos]]
| + | #Modelos |
− | ##[[MODELOS#Características de los modelos:|Características de los modelos:]] | + | ##Características de los modelos: |
− | ##[[MODELOS#Acceso Directo a RDBMS|Acceso Directo a RDBMS]] | + | ##Acceso Directo a RDBMS |
− | ###[[MODELOS#La Clase DdBase|La Clase DdBase]] | + | ###La Clase DdBase |
− | ###[[MODELOS#Propiedades de la Clase DB|Propiedades de la Clase DB]] | + | ###Propiedades de la Clase DB |
− | ####[[MODELOS#$db->Id_Connection|$db->Id_Connection]] | + | ####$db->Id_Connection |
− | ####[[MODELOS#$db->dbUser|$db->dbUser]] | + | ####$db->dbUser |
− | ####[[MODELOS#$db->dbPass|$db->dbPass]] | + | ####$db->dbPass |
− | ####[[MODELOS#$db->dbHost|$db->dbHost]] | + | ####$db->dbHost |
− | ####[[MODELOS#$db->dbName|$db->dbName]] | + | ####$db->dbName |
− | ####[[MODELOS#$db->dbPort|$db->dbPort]] | + | ####$db->dbPort |
− | ####[[MODELOS#$db->lastError|$db->lastError]] | + | ####$db->lastError |
− | ####[[MODELOS#$db->lastResultQuery|$db->lastResultQuery]] | + | ####$db->lastResultQuery |
− | ###[[MODELOS#Métodos de la Clase DB|Métodos de la Clase DB]] | + | ###Métodos de la Clase DB |
− | ####[[MODELOS#connect()|connect()]] | + | ####connect() |
− | ####[[MODELOS#query()|query()]] | + | ####query() |
− | ####[[MODELOS#close()|close()]] | + | ####close() |
− | ####[[MODELOS#fetch_array()|fetch_array()]] | + | ####fetch_array() |
− | ####[[MODELOS#field_name()|field_name()]] | + | ####field_name() |
− | ####[[MODELOS#data_seek()|data_seek()]] | + | ####data_seek() |
− | ####[[MODELOS#affected_rows()|affected_rows()]] | + | ####affected_rows() |
− | ####[[MODELOS#error()|error()]] | + | ####error() |
− | ####[[MODELOS#no_error()|no_error()]] | + | ####no_error() |
− | ####[[MODELOS#find()|find()]] | + | ####find() |
− | ####[[MODELOS#in_query()|in_query()]] | + | ####in_query() |
− | ####[[MODELOS#in_query_assoc()|in_query_assoc()]] | + | ####in_query_assoc() |
− | ####[[MODELOS#in_query_num()|in_query_num()]] | + | ####in_query_num() |
− | ####[[MODELOS#fetch_one()|fetch_one()]] | + | ####fetch_one() |
− | ####[[MODELOS#table_exists()|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 125: |
Línea 117: |
| #[[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 135: |
Línea 127: |
| #[[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]] |
− | #[[Convenciones en ActiveRecord#id|id]] | + | #[[Convenciones en ActiveRecord#Id|Id]] |
− | #[[Convenciones en ActiveRecord#campo_id|campo_id]] | + | #[[Convenciones en ActiveRecord#Campo_id|Campo_id]] |
− | #[[Convenciones en ActiveRecord#campo_at|campo_at]] | + | #[[Convenciones en ActiveRecord#Campo_at|Campo_at]] |
− | #[[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
| + | |
− | su funcionalidad respectiva. Éstos se encuentran organizados alfabéticamente:
| + | ==[[Consultas]]== |
− | ===[[Consultas]]===
| |
− | Métodos para hacer consulta de Registros:
| |
− | #[[Consultas#distinct|distinct]]
| |
− | #[[Consultas#find_all_by_sql(string $sql)|find_all_by_sql(string $sql)]]
| |
− | #[[Consultas#find_by_sql(string $sql)|find_by_sql(string $sql)]]
| |
− | #[[Consultas#find_first|find_first]]
| |
− | #[[Consultas#find|find]]
| |
− | #[[Consultas#select_one(string $select query)|select_one(string $select query)]]
| |
− | #[[Consultas#select_one(string $select query) (static)|select_one(string $select query) (static)]]
| |
− | #[[Consultas#exists|exists]]
| |
− | #[[Consultas#find_all_by|find_all_by]]
| |
− | #[[Consultas#find_by_*campo*|find_by_*campo*]]
| |
− | #[[Consultas#find_all_by_*campo*|find_all_by_*campo*]]
| |
| | | |
− | ===[[Conteos y Sumatorias]]===
| + | #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#count|count]]
| + | ==Conteos y Sumatorias== |
− | #[[Conteos y Sumatorias#sum|sum]]
| |
− | #[[Conteos y Sumatorias#count_by_sql|count_by_sql]]
| |
| | | |
− | ===[[Promedios, Máximo y Mínimo]]===
| + | #count |
| + | #sum |
| + | #count_by_sql |
| + | |
| + | ==[[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 177: |
Línea 168: |
| #[[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 188: |
Línea 179: |
| #[[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]] | + | #validates_presence_of |
− | #[[Validación#validates_length_of|validates_length_of]]
| + | #validates_length_of |
− | #[[Validación#validates_numericality_of|validates_numericality_of]]
| + | #validates_numericality_of |
− | #[[Validación#validates_email_in|validates_email_in]] | + | #validates_email_in |
− | #[[Validación#validates_uniqueness_of|validates_uniqueness_of]] | + | #validates_uniqueness_of |
− | #[[Validación#validates_date_in|validates_date_in]]
| + | #validates_date_in |
− | #[[Validación#validates_format_of|validates_format_of]] | + | #validates_format_of |
| | | |
− | ===[[Transacciones]]===
| + | ==[[Transacciones]]== |
| | | |
| #[[Transacciones#commit()|commit()]] | | #[[Transacciones#commit()|commit()]] |
Línea 204: |
Línea 195: |
| #[[Transacciones#rollback()|rollback()]] | | #[[Transacciones#rollback()|rollback()]] |
| | | |
− | ===[[Otros Métodos]]=== | + | ==[[Otros Métodos]]== |
− | | |
− | #[[Otros Métodos#sql(string $sql)|sql(string $sql)]]
| |
− | | |
− | ===[[Callbacks ActiveRecord]]===
| |
− | | |
− | #[[Callbacks ActiveRecord#Introduccion|Introduccion]]
| |
− | #[[Callbacks ActiveRecord#before_validation|before_validation]]
| |
− | #[[Callbacks ActiveRecord#before_validation_on_create|before_validation_on_create]]
| |
− | #[[Callbacks ActiveRecord#before_validation_on_update|before_validation_on_update]]
| |
− | #[[Callbacks ActiveRecord#after_validation_on_create|after_validation_on_create]]
| |
− | #[[Callbacks ActiveRecord#after_validation_on_update|after_validation_on_update]]
| |
− | #[[Callbacks ActiveRecord#after_validation|after_validation]]
| |
− | #[[Callbacks ActiveRecord#before_save|before_save]]
| |
− | #[[Callbacks ActiveRecord#before_update|before_update]]
| |
− | #[[Callbacks ActiveRecord#before_create|before_create]]
| |
− | #[[Callbacks ActiveRecord#after_update|after_update]]
| |
− | #[[Callbacks ActiveRecord#after_create|after_create]]
| |
− | #[[Callbacks ActiveRecord#after_save|after_save]]
| |
− | #[[Callbacks ActiveRecord#before_delete|before_delete]]
| |
− | #[[Callbacks ActiveRecord#after_delete|after_delete]]
| |
− | | |
− | ===[[Asociaciones]]===
| |
− | | |
− | #[[Asociaciones#Introducción|Introducción]]
| |
− | #[[Asociaciones#Pertenece (belongs_to)|Pertenece (belongs_to)]]
| |
− | #[[Asociaciones#Tiene un (has_one)|Tiene un (has_one)]]
| |
− | #[[Asociaciones#Tiene muchos (has_many)|Tiene muchos (has_many)]]
| |
− | #[[Asociaciones#Tiene y pertenece a muchos (has_and_belongs_to_many)|Tiene y pertenece a muchos (has_and_belongs_to_many)]]
| |
− | | |
− | ===[[Paginadores]]===
| |
− | | |
− | #[[Paginadores#Paginate|Paginate]]
| |
− | #[[Paginadores#Paginate_by_sql|Paginate_by_sql]]
| |
− | #[[Paginadores#Paginando en ActiveRecord|Paginando en ActiveRecord]]
| |
− | #[[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);
| |
− | | |
− | //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) ==
| + | #sql(string $sql) |
− | 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
| + | ==[[Callbacks ActiveRecord]]== |
− | 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]] ===
| + | #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 |
| | | |
− | ===[[ApplicationControllerBase| ApplicationControllerBase (Clase padre)]] ===
| + | ==[[Asociaciones]]== |
| | | |
− | ===[[Enrutamiento y redirecciones]] ===
| + | #Introducción |
| + | #Pertenece (belongs_to) |
| + | #Tiene un (has_one) |
| + | #Tiene muchos (has_many) |
| + | #Tiene y pertenece a muchos (has_and_belongs_to_many) |
| | | |
− | =[[Vistas|VISTAS Y HELPERS]]= | + | ==Paginadores== |
| | | |
− | #[[Vistas#¿Porque usar Vistas?|¿Porque usar vistas?]]
| + | ==Ejemplo Completo== |
− | ===[[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]]= | + | = APPLICATION CONTROLLER = |
| | | |
− | =[[EXTENSIONS (Módulos extras de KumbiaPHP)]]= | + | = VIEWS Y HELPERS = |
− | ==[[Filter]]==
| |
| | | |
− | #[[Filter#Qu.C3.A9_es_un_Filtro| Qué es un Filtro?]]
| + | = AJAX = |
− | #[[Filter#Utilizaci.C3.B3n_B.C3.A1sica| Utilización básica]]
| |
− | #[[Filter#M.C3.A9todos_de_la_clase_Filter| Métodos de la clase Filter]]
| |
| | | |
− | =[[GENERADOR DE FORMULARIOS]]= | + | = MODULOS EXTRAS = |
| | | |
− | #[[GENERADOR DE FORMULARIOS#|Tipos de Formularios]]
| + | = GENERADOR DE FORMULARIOS = |
− | #[[GENERADOR DE FORMULARIOS#|Ventajas Generadores de Formularios]]
| |
− | #[[GENERADOR DE FORMULARIOS#|Desventajas Generadores de Formularios]]
| |
| | | |
− | =[[EJEMPLOS]]= | + | = EJEMPLOS = |
| | | |
− | =[[GLOSARIO]]= | + | = GLOSARIO = |