https://wiki.kumbiaphp.com/api.php?action=feedcontributions&user=201.210.220.90&feedformat=atomKumbiaPHP Framework Wiki - Contribuciones del usuario [es]2024-03-28T12:34:53ZContribuciones del usuarioMediaWiki 1.34.1https://wiki.kumbiaphp.com/index.php?title=Principal&diff=2111Principal2009-10-14T15:55:17Z<p>201.210.220.90: </p>
<hr />
<div>{| style="margin:4px 0px 0px 0px; width:100%; background:none"<br />
| class="MainPageBG" style="width:100%; border:1px solid #C7D0F8; background:#F2F5FD; vertical-align:top; color:#000; -moz-border-radius:4px" |<br />
{| style="vertical-align:top; background:#F2F5FD; color:#000; width:100%; padding: 2px "<br />
|-<br />
|<br />
<!-------------------------------------------<br />
--- BARRA SUPERIOR (TEXTO IZQUIERDA) --------<br />
--------------------------------------------><br />
{| style="width:60%; border:solid 0px; background:none"<br />
| style="width:60%; text-align:center; white-space:nowrap; color:#000" |<br />
<div style="font-size:162%; border:none; margin:0; padding:.1em; color:#000">Bienvenidos a la Wiki de [http://www.kumbiaphp.com/ KumbiaPHP Framework],</div><br />
<div style="top:+0.2em; font-size:100%">En esta wiki el contenido es libre y todos pueden editar.</div><br />
|}<br />
<!-----------------------------------------<br />
--- BARRA SUPERIOR (TEXTO DERECHA) ----------<br />
--------------------------------------------><br />
| style="width:40%; font-size:100%; color:#000; text-align:right" |<br />
{{CURRENTTIME}} UTC – {{CURRENTDAYNAME}},<br />{{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}}.<br /><br />
[[Especial:Estadísticas|'''{{NUMBEROFARTICLES}}''' Artículos]].<br />
|}<br />
|}<br />
<!-----------------------------------------<br />
--- PARTICIPACIÓN Y COMUNIDAD ---------------<br />
--------------------------------------------><br />
{| style="margin:4px 0px 0px 0px; background:none"<br />
| class="MainPageBG" style="width:60%; border:1px solid #DDDDF7; background:#F7F7FF; vertical-align: middle; color:#000; -moz-border-radius:4px" |<br />
{| style="text-align: center; width: 100%; padding: 2px; vertical-align:top; background:#F7F7FF"<br />
|-<br />
| style="width: 100%; padding-top:2px; font-size:100%" | <br />
[[Ayuda:C%C3%B3mo_puedo_colaborar|¿Cómo colaborar?]]<br />
[[Preguntas_Frecuentes|Preguntas Frecuentes]] <br />
|}<!-----------------------------------------<br />
--- BÚSQUEDAS Y CONSULTAS -------------------<br />
--------------------------------------------><br />
| style="border:1px solid transparent" |<br />
| class="MainPageBG border-radius4" style="width:40%; border:1px solid #CCF7CC; background:#EEFFEE; vertical-align:top; -moz-border-radius:4px" |<br />
{| style="padding: 2px; width: 100%; vertical-align:top; background:#EEFFEE"<br />
|-<br />
| style="width: 100%; padding-top:2px;font-size:100%; text-align: center" | [[Especial:Buscar|Búsquedas]] | [[Especial:Categorías|Todas las categorías]] | [[Especial:CambiosRecientes| Cambios Recientes]]<br />
|}<br />
|}<!-----------------------------------------<br />
--- BARRA DE CONTENIDOS IZQUIERDA -----------<br />
--------------------------------------------><br />
{| style="margin:4px 0px 0px 0px; background:none"<br />
| class="MainPageBG" class="border-radius4" style="width:60%; border:1px solid #cedff2; background:#ffffff; vertical-align:top; color:#000; -moz-border-radius:4px" |<br />
{| style="padding: 2px; width: 100%; vertical-align:top; background:#ffffff"<br />
! <h2 class="border-radius6" style="margin:0; background:#E6ECFF; font-size:100%; font-weight:bold; border:1px solid #cccccc; text-align:left; color:#000; padding:0.2em 0.4em; -moz-border-radius:6px">Tutoriales y Ejemplos</h2><br />
|-<br />
| style="color:#000; font-size:100%" | [[Hola_Mundo_KumbiaPHP_Framework|Hola Mundo :-)]]<br />
|-<br />
| style="color:#000; font-size:100%" | [[Como_hacer_un_CRUD_en_KumbiaPHP_Framework|Como hacer un CRUD (Create, Read, Update, Delete)]]<br />
|-<br />
| style="color:#000; font-size:100%" | [[Como_Usar_los_Modelos_en_KumbiaPHP|Como usar los modelos en KumbiaPHP]]<br />
|-<br />
| style="color:#000; font-size:100%" | [[Como_usar_google_maps_en_KumbiaPHP_Framework|Como usar Google Maps en KumbiaPHP]]<br />
|-<br />
! <h2 class="border-radius6" style="margin:0; background:#DCFFD1; font-size:100%; font-weight:bold; border:1px solid #cccccc; text-align:left; color:#000; padding:0.2em 0.4em; -moz-border-radius:6px">Comunidad</h2><br />
|-<br />
| style="color:#000; font-size:100%; padding:5px; padding-top:10px; padding-bottom:10px" | [http://www.kumbiaphp.com/ KumbiaPHP]<br />
|-<br />
| style="color:#000; font-size:100%; padding:5px; padding-top:10px; padding-bottom:10px" | [http://www.kumbiaphp.com/blog/ Blog de KumbiaPHP]<br />
|-<br />
| style="color:#000; font-size:100%; padding:5px; padding-top:10px; padding-bottom:10px" | [http://www.kumbiaphp.com/foro/ Foro de KumbiaPHP]<br />
|-<br />
! <h2 class="border-radius6" style="margin:0; background:#FFE6F9; font-size:100%; font-weight:bold; border:1px solid #cccccc; text-align:left; color:#000; padding:0.2em 0.4em; -moz-border-radius:6px">Casos de Éxitos</h2><br />
|-<br />
| style="color:#000; font-size:100%" | [[Casos_de_Éxitos_de_KumbiaPHP_Framework| Casos de Éxitos]]<br />
|-<br />
! <h2 class="border-radius6" style="margin:0; background:#E6F2EF; font-size:100%; font-weight:bold; border:1px solid #cccccc; text-align:left; color:#000; padding:0.2em 0.4em; -moz-border-radius:6px">Benchmark KumbiaPHP</h2><br />
|-<br />
| style="color:#000; font-size:100%" | [[Frameworks_Benchmark_KumbiaPHP_vs_(Yii_CodeIgniter_Kohana_Zend_Prado_CakePHP_Symfony) | Frameworks Benchmark KumbiaPHP vs (Yii CodeIgniter Kohana Zend Prado CakePHP Symfony)]]<br />
|-<br />
| style="color:#000; font-size:100%" | <br />
|-<br />
|}<br />
| style="border:1px solid transparent" | <!--<br />
---------------------------------------------<br />
--- BARRA DE CONTENIDOS DERECHA -------------<br />
--------------------------------------------><br />
| class="MainPageBG" style="width:40%; border:1px solid #cef2e0; background:#f5faff; vertical-align:top; -moz-border-radius:4px" |<br />
|}<br />
__NOTOC__</div>201.210.220.90https://wiki.kumbiaphp.com/index.php?title=Store_Procedure_(Procedimientos_Almacenados)_KumbiaPHP&diff=1666Store Procedure (Procedimientos Almacenados) KumbiaPHP2009-09-23T15:38:00Z<p>201.210.220.90: </p>
<hr />
<div>Les comento como acceder a procedimientos almacenados desde KumbiaPHP<br />
<br />
Desde hace un tiempo uso Procedimientos almacenados (stored procedure). En kumbia no hace falta hacer mucho para acceder a estos solo con indicarlo como una columna basta, por ejemplo: supongamos que tenemos un procedimiento llamado getMoneyName el cual recibe como parámetro un entero y retorna un string, la manera de acceder a este seria la siguiente:<br />
<br />
<source lang=php><br />
$bien = new Bien(); //donde Bien es un modelo de kumbia<br />
$bien->find_first(‘columns: getMoneyName(moneda_id) ’,’conditions: nrobien=1’);<br />
Flash::message($bien->getmoneyname);<br />
</source></div>201.210.220.90https://wiki.kumbiaphp.com/index.php?title=Como_Crear_Relacion_1:N_KumbiaPHP_Framework&diff=1664Como Crear Relacion 1:N KumbiaPHP Framework2009-09-23T12:23:05Z<p>201.210.220.90: /* Obteniendo las relaciones */</p>
<hr />
<div>En este ejemplo se explica como se realizan asociaciones sobre nuestro modelos haciendo uso de las '''Relaciones de ActiveRecord'''.<br />
<br />
Tenemos dos tablas (especialidades y profesionales) entre las cuales existe una relación de 1:N (1 a muchos), es decir un profesional tiene una especialidad (para efecto del ejemplo) y una especialidad tiene muchos profesionales, la idea de las relaciones en [http://www.kumbiaphp.com KumbiaPHP] es que cuando se realice una búsqueda de profesionales implícitamente este su relación, en este caso seria su especialidad (un objeto) y cuando se realice una búsqueda por especialidad obtener los profesionales (array de objectos) asociados a esta.<br />
<br />
==Estructura de las Tablas==<br />
<br />
<source lang=mysql><br />
-- -----------------------------------------------------<br />
-- Table `mydb`.`especialidades`<br />
-- -----------------------------------------------------<br />
CREATE TABLE IF NOT EXISTS `mydb`.`especialidades` (<br />
`id` INT NOT NULL ,<br />
`nombre` VARCHAR(45) NULL ,<br />
PRIMARY KEY (`id`) )<br />
ENGINE = InnoDB;<br />
<br />
<br />
-- -----------------------------------------------------<br />
-- Table `mydb`.`profesionales`<br />
-- -----------------------------------------------------<br />
CREATE TABLE IF NOT EXISTS `mydb`.`profesionales` (<br />
`id` INT NOT NULL AUTO_INCREMENT ,<br />
`nombre` VARCHAR(45) NULL ,<br />
`apellido` VARCHAR(45) NULL ,<br />
`especialidades_id` INT NOT NULL ,<br />
PRIMARY KEY (`id`) ,<br />
INDEX `fk_profesionales_especialidades` (`especialidades_id` ASC) ,<br />
CONSTRAINT `fk_profesionales_especialidades`<br />
FOREIGN KEY (`especialidades_id` )<br />
REFERENCES `mydb`.`especialidades` (`id` )<br />
ON DELETE NO ACTION<br />
ON UPDATE NO ACTION)<br />
ENGINE = InnoDB;<br />
<br />
</source><br />
<br />
==Relación entre los Modelos==<br />
<br />
[[Archivo:Relacion.jpg]]<br />
<br />
==El Modelo==<br />
<br />
Con el método [[Asociaciones#Pertenece_.28belongs_to.29 | belongs_to()]], se establece una relación de '''pertenece a''', es decir de una relación 1:1 (Modelo ER) entre el profesional y la especialidad desarrollada por el mismo.<br />
<br />
Por otra parte con [[Asociaciones#Tiene_muchos_.28has_many.29 | has_many()]], se establece una relación es de '''tiene muchos''', es decir una relación 1:N (Modelo ER), en el caso del ejemplo una especialidad puede tener (engloba) a varios profesionales.<br />
<br />
<source lang=php><br />
class Profesionales extends ActiveRecord<br />
{<br />
public function initialize()<br />
{<br />
//Relaciones<br />
//Un profesional tiene una especialidad<br />
$this->belongs_to('especialidades');<br />
}<br />
}<br />
</source><br />
<br />
<br />
<source lang=php><br />
class Especialidades extends ActiveRecord<br />
{<br />
public function initialize()<br />
{<br />
//Relaciones<br />
//Un especialidad tiene muchos profesionales<br />
$this->has_many('profesionales');<br />
}<br />
}<br />
</source><br />
<br />
==Ejemplo de Uso==<br />
Suponiendo que necesitamos crear una lista de los profesionales guardados en la tabla profesionales con sus respectivas especialidades.<br />
<br />
===En el controller===<br />
<source lang=php><br />
...<br />
public function listar()<br />
{<br />
$this->profesionales = $this->Profesionales->find();<br />
}<br />
...<br />
//los puntos (...) indican que hay una definicion de un controller<br />
</source><br />
<br />
=== Obteniendo las Relación de Profesionales===<br />
Para obtener la relación de un profesional obviamente hay que recorrer el array que devolvió el método [[Consultas#find | find()]] pero internamente en cada objecto esta la relación porque así fue definida, Un Profesional tiene una Especialidad.<br />
<br />
<source lang=php><br />
foreach ($profesionales as $profesional){<br />
echo $profesional->nombre;<br />
echo $profesional->Especialidades()->nombre;//imprime la relación<br />
}<br />
</source><br />
<br />
=== Obteniendo las Relación de Especialidades ===<br />
<br />
[[Categoría:Tutoriales KumbiaPHP]]</div>201.210.220.90https://wiki.kumbiaphp.com/index.php?title=Como_Crear_Relacion_1:N_KumbiaPHP_Framework&diff=1642Como Crear Relacion 1:N KumbiaPHP Framework2009-09-22T18:36:44Z<p>201.210.220.90: /* La Consulta */</p>
<hr />
<div>Aquí Breve explicación...<br />
<br />
==Estructura de las Tablas==<br />
<br />
<source lang=mysql><br />
-- -----------------------------------------------------<br />
-- Table `mydb`.`especialidades`<br />
-- -----------------------------------------------------<br />
CREATE TABLE IF NOT EXISTS `mydb`.`especialidades` (<br />
`id` INT NOT NULL ,<br />
`nombre` VARCHAR(45) NULL ,<br />
PRIMARY KEY (`id`) )<br />
ENGINE = InnoDB;<br />
<br />
<br />
-- -----------------------------------------------------<br />
-- Table `mydb`.`profesionales`<br />
-- -----------------------------------------------------<br />
CREATE TABLE IF NOT EXISTS `mydb`.`profesionales` (<br />
`id` INT NOT NULL AUTO_INCREMENT ,<br />
`nombre` VARCHAR(45) NULL ,<br />
`apellido` VARCHAR(45) NULL ,<br />
`especialidades_id` INT NOT NULL ,<br />
PRIMARY KEY (`id`) ,<br />
INDEX `fk_profesionales_especialidades` (`especialidades_id` ASC) ,<br />
CONSTRAINT `fk_profesionales_especialidades`<br />
FOREIGN KEY (`especialidades_id` )<br />
REFERENCES `mydb`.`especialidades` (`id` )<br />
ON DELETE NO ACTION<br />
ON UPDATE NO ACTION)<br />
ENGINE = InnoDB;<br />
<br />
</source><br />
<br />
==Descripcion del Modelo==<br />
<br />
El mnodelo esta compuesto por dos tablas: Profesionales y Especialidades, la tabla 'profesionales' esta diseñada para llevara los datos de todos los profesionales de una empresa interdisciplinaria, estos profesionales pueden ser: medicos, abogados, ingenieros, etc. <br />
La tabla 'especialidades' hace referencia a las distintas orientaciones dentro la profesion , por ejemplo:<br><br><br />
<br />
Profesion: Medico || especialidad: clinico, cardiologo, oftalmologo, etc.<br><br />
Profesion: Ingeniero || especialidad: civil, sistemas, contrucciones, electronicos, etc.<br><br><br />
<br />
<br />
Las tablas estan creadas en mysql , y estan relacionadas por el campo 'id'.<br><br><br />
<br />
[[Archivo:Relacion.jpg]]<br />
<br />
==El Modelo==<br />
<br />
Con el metodo Belongs_to, se establece una relacion de "pertenece a", es decir de una relacion 1:1(Modelo ER) entre el profesional y la especialidad desarrollada por el mismo.<br><br />
Por otra parte con Has_many, la relacion es de "tiene muchos", es decir una relacion 1:n(Modelo ER), en el caso del ejemplo una especialidad puede tener (engloba)a varios profesionales.<br><br />
<source lang=php><br />
class Profesionales extends ActiveRecord<br />
{<br />
public function initialize()<br />
{<br />
//Relaciones<br />
//Un profesional tiene una especialidad<br />
$this->belongs_to('especialidad');<br />
}<br />
}<br />
</source><br><BR><br />
<source lang=php><br />
class Especialidades extends ActiveRecord<br />
{<br />
public function initialize()<br />
{<br />
//Relaciones<br />
//Un especialidad tiene muchos profesionales<br />
$this->has_many('profesionales');<br />
}<br />
}<br />
</source><br />
<br />
==La Consulta==<br />
La consulta seria en un controller...<br><br />
<br />
<source lang=php><br />
$this->profesionales = $this->Profesionales->find();<br />
</source><br />
<br><br />
y para obtener la relacion de un profesional obviamente hay que recorrer el array que devolvio el find pero internamente en cada objecto esta la relacion porque asi la definimos 1 profesional tiene una especialidad.<br><br><br />
<source lang=php><br />
foreach ($profesionales as $profesional){<br />
echo $profesional->nombre;<br />
echo $profesional->Especialidades()->nombre;<br />
}<br />
</source><br />
[[Categoría:Tutoriales KumbiaPHP]]</div>201.210.220.90https://wiki.kumbiaphp.com/index.php?title=Como_Crear_Relacion_1:N_KumbiaPHP_Framework&diff=1641Como Crear Relacion 1:N KumbiaPHP Framework2009-09-22T18:35:08Z<p>201.210.220.90: /* Estructura de las Tablas */</p>
<hr />
<div>Aquí Breve explicación...<br />
<br />
==Estructura de las Tablas==<br />
<br />
<source lang=mysql><br />
-- -----------------------------------------------------<br />
-- Table `mydb`.`especialidades`<br />
-- -----------------------------------------------------<br />
CREATE TABLE IF NOT EXISTS `mydb`.`especialidades` (<br />
`id` INT NOT NULL ,<br />
`nombre` VARCHAR(45) NULL ,<br />
PRIMARY KEY (`id`) )<br />
ENGINE = InnoDB;<br />
<br />
<br />
-- -----------------------------------------------------<br />
-- Table `mydb`.`profesionales`<br />
-- -----------------------------------------------------<br />
CREATE TABLE IF NOT EXISTS `mydb`.`profesionales` (<br />
`id` INT NOT NULL AUTO_INCREMENT ,<br />
`nombre` VARCHAR(45) NULL ,<br />
`apellido` VARCHAR(45) NULL ,<br />
`especialidades_id` INT NOT NULL ,<br />
PRIMARY KEY (`id`) ,<br />
INDEX `fk_profesionales_especialidades` (`especialidades_id` ASC) ,<br />
CONSTRAINT `fk_profesionales_especialidades`<br />
FOREIGN KEY (`especialidades_id` )<br />
REFERENCES `mydb`.`especialidades` (`id` )<br />
ON DELETE NO ACTION<br />
ON UPDATE NO ACTION)<br />
ENGINE = InnoDB;<br />
<br />
</source><br />
<br />
==Descripcion del Modelo==<br />
<br />
El mnodelo esta compuesto por dos tablas: Profesionales y Especialidades, la tabla 'profesionales' esta diseñada para llevara los datos de todos los profesionales de una empresa interdisciplinaria, estos profesionales pueden ser: medicos, abogados, ingenieros, etc. <br />
La tabla 'especialidades' hace referencia a las distintas orientaciones dentro la profesion , por ejemplo:<br><br><br />
<br />
Profesion: Medico || especialidad: clinico, cardiologo, oftalmologo, etc.<br><br />
Profesion: Ingeniero || especialidad: civil, sistemas, contrucciones, electronicos, etc.<br><br><br />
<br />
<br />
Las tablas estan creadas en mysql , y estan relacionadas por el campo 'id'.<br><br><br />
<br />
[[Archivo:Relacion.jpg]]<br />
<br />
==El Modelo==<br />
<br />
Con el metodo Belongs_to, se establece una relacion de "pertenece a", es decir de una relacion 1:1(Modelo ER) entre el profesional y la especialidad desarrollada por el mismo.<br><br />
Por otra parte con Has_many, la relacion es de "tiene muchos", es decir una relacion 1:n(Modelo ER), en el caso del ejemplo una especialidad puede tener (engloba)a varios profesionales.<br><br />
<source lang=php><br />
class Profesionales extends ActiveRecord<br />
{<br />
public function initialize()<br />
{<br />
//Relaciones<br />
//Un profesional tiene una especialidad<br />
$this->belongs_to('especialidad');<br />
}<br />
}<br />
</source><br><BR><br />
<source lang=php><br />
class Especialidades extends ActiveRecord<br />
{<br />
public function initialize()<br />
{<br />
//Relaciones<br />
//Un especialidad tiene muchos profesionales<br />
$this->has_many('profesionales');<br />
}<br />
}<br />
</source><br />
<br />
==La Consulta==<br />
La consulta seria en un controller...<br><br />
<br />
<source lang=php><br />
$this->profesionales = $this->Profesionales->find();<br />
</source><br />
<br><br />
y para obtener la relacion de un profesional obviamente hay que recorrer el array que devolvio el find pero internamente en cada objecto esta la relacion porque asi la definimos 1 profesional tiene una especialidad.<br><br><br />
<source lang=php><br />
foreach ($profesionales as $profesional){<br />
echo $profesional->nombre;<br />
echo $profesional->Especialidades()->nombre;<br />
}<br />
</source></div>201.210.220.90