https://wiki.kumbiaphp.com/api.php?action=feedcontributions&user=Admin&feedformat=atomKumbiaPHP Framework Wiki - Contribuciones del usuario [es]2024-03-28T17:05:38ZContribuciones del usuarioMediaWiki 1.34.1https://wiki.kumbiaphp.com/index.php?title=Como_buscar_y_filtrar_por_fecha&diff=4063Como buscar y filtrar por fecha2015-03-16T16:42:36Z<p>Admin: Admin movió la página Tutorial-busqueda-filtrada-por-fecha a Como buscar y filtrar por fecha</p>
<hr />
<div>{{cleanupbox<br />
|texto ='''Este ejemplo es funcional para la [[KumbiaPHP_Framework_Versión_1.0_Beta2| Versión Beta2 en desarrollo]]'''<br /><br />
}}<br />
== Introducción ==<br />
Lo que se pretende es realizar consultas filtradas a nuestra base de datos, ya sea por fechas y/o por algún otro campo<br />
<br />
== Modelo ==<br />
'''Crear el Modelo'''<br />
<br />
'''''[app]/models/ventas.php:'''''<br />
<source lang="php"><br />
<?php<br />
class Ventas extends ActiveRecord{<br />
public function getVentas($page,$desde,$hasta,$cliente, $ppage=20){<br />
return $this->paginate("page: $page", "per_page: $ppage", "clientes_id = $cliente AND DATE(fecha_at) between '$desde' and '$hasta'");<br />
}<br />
}?><br />
</source><br />
<br />
== Controller ==<br />
<br />
<br />
'''''[app]/controllers/ventas_controller.php:'''''<br />
<br />
<source lang="php"><br />
public function reporte_despachos_por_cliente($page=1){<br />
$venta = new Ventas();<br />
$cliente = 0; // cliente por defecto<br />
$desde = date("Y-m-d"); //fecha de hoy<br />
$hasta = date("Y-m-d"); //fecha de hoy<br />
$ventas = Input::request("ventas"); // guardo todo lo que se envió desde el formulario de la vista<br />
if($ventas){ // si se han enviado los datos del formulario de la vista<br />
$cliente = $ventas['clientes_id']; //guardo en $cliente, la selección del combobox de la vista<br />
$desde = date("Y-m-d", strtotime($ventas['desde'])); //strtotime debido a que lee de un elemento jquery date_picker que entrega un valor en este formato ejemplo: '28 May 12'<br />
$hasta = date("Y-m-d", strtotime($ventas['hasta']));<br />
}<br />
$this->listVentas = $venta->getVentas($page,$desde,$hasta,$cliente);<br />
}<br />
</source><br />
<br />
== Vista ==<br />
<br />
'''''[apps]/views/ventas/index.phtml'''''<br />
<source lang=php><br />
<?php echo Form::open(); // por defecto llama a la misma url ?><br />
<?php echo Form::label('Cliente :','ventas.cliente'); ?><br />
<?php echo Form::dbSelect('ventas.clientes_id','nombre'); ?><br />
<?php echo Form::label('Fecha Desde :','ventas.desde'); ?><br />
<?php echo Form::text('ventas.desde',"class='text date_picker'"); ?> <!-- suponiendo que hay una class css llamada 'text date_picker' --><br />
<?php echo Form::label('Fecha Hasta :','ventas.hasta'); ?><br />
<?php echo Form::text('ventas.hasta',"class='text date_picker'"); ?><br />
<?php echo Form::submit('Filtrar'); ?><br />
<?php echo Form::close() ?><br />
<br />
<table> <br />
<?php foreach ($listVentas->items as $item) : ?><br />
<tr><br />
<td><?php echo $item->fecha ?></td><br />
<td><?php echo $item->etc ?></td><br />
<td><?php echo $item->etc ?></td><br />
</tr><br />
<?php endforeach; ?><br />
</table><br />
</source><br />
<br />
[[Categoría:Tutoriales KumbiaPHP]]</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Tutorial-busqueda-filtrada-por-fecha&diff=4064Tutorial-busqueda-filtrada-por-fecha2015-03-16T16:42:36Z<p>Admin: Admin movió la página Tutorial-busqueda-filtrada-por-fecha a Como buscar y filtrar por fecha</p>
<hr />
<div>#REDIRECCIÓN [[Como buscar y filtrar por fecha]]</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Archivo:Blue_arrow_box.png&diff=4055Archivo:Blue arrow box.png2015-03-03T22:06:22Z<p>Admin: </p>
<hr />
<div></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Validando_formulario_con_clase_kumbia_validate&diff=4053Validando formulario con clase kumbia validate2015-03-03T12:43:21Z<p>Admin: /* Modelo: sendform.php */</p>
<hr />
<div>'''Atención: Este tutorial esta basado en la version Spirit beta2 de KumbiaPHP Framework.'''<br />
<br />
Muchas veces necesitamos usar formularios para que una empresa/persona contacte con nosotros a través de nuestra web. Para validar los datos enviados y evitar un mal uso del mismo, el equipo de Kumbia ha desarrollado una nueva clase llamada Validate desvinculada de las validaciones propias de los modelos basados en ActiveRecord.<br />
<br />
Para este tutorial necesitaremos como mínimo un controller, un modelo y una vista. Si descargamos el paquete KumbiaPHP del GitHub podemos usar el controller por defecto y su vista y sólo nos quedaría crear el modelo.<br />
<br />
=== Modelo: sendform.php ===<br />
<br />
<source lang=php line><br />
class SendForm {<br />
<br />
private function __reglas() {<br />
<br />
$reglas = array(<br />
'NombreCompleto' => array(<br />
'required'=>array('error'=>'Indique su nombre.'),<br />
'alpha' =>array('error'=>'Nombre incompleto o incorrecto.')<br />
),<br />
'Email' => array(<br />
'required'=>array('error'=>'Indique su email.'),<br />
'email' => array('error'=>'Email incorrecto.')<br />
),<br />
'Movil' => array(<br />
'required'=>array('error'=>'Indique su teléfono / móvil.'),<br />
'length' => array('min'=>'9','max'=>'17','error'=>'Teléfono / móvil incorrecto'),<br />
'pattern' => array('regexp'=>'/^\+(?:[0-9] ?){6,14}[0-9]$/','error'=>'Teléfono incorrecto. Formato ejemplo. +34 862929929')<br />
),<br />
'Asunto' => array(<br />
'required'=>array('error'=>'Indique un asunto.'),<br />
),<br />
'Mensaje' => array(<br />
'required'=>array('error'=>'Indique un mensaje.'),<br />
'length'=>array('min'=>100, 'error'=>'Si es posible, concrete más en su mensaje.'),<br />
)<br />
);<br />
<br />
return $reglas;<br />
<br />
}<br />
<br />
<br />
// Envio de datos para generar email<br />
public function enviar($datos) {<br />
<br />
$validador = new Validate($datos, $this->__reglas());<br />
if (!$validador->exec()) {<br />
$validador->flash();<br />
} else {<br />
<br />
// Enviar email<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</source><br />
<br />
===Vista: index.phtml===<br />
<br />
En nuestra vista debemos añadir los controles para los campos del formulario. Hemos usado la nomenclatura contactar.<field> para agrupar en una única variable los datos del formulario.<br />
<br />
<source lang=php line><br />
<br />
<div class="container"><br />
<?php echo Form::open() ?><br />
<?php View::content() ?><br />
<fieldset><legend>Contactar</legend><br />
<?php echo Form::label('Nombre completo:', 'contactar_NombreCompleto') ?> <?php echo Form::text('contactar.NombreCompleto') ?><br />
<?php echo Form::label('Email:', 'contactar_Email') ?> <?php echo Form::text('contactar.Email') ?><br />
<?php echo Form::label('Teléfono / Móvil:', 'contactar_Movil') ?> <?php echo Form::text('contactar.Movil') ?><br />
<?php echo Form::label('Mensaje:', 'contactar_Mensaje') ?> <?php echo Form::textarea('contactar.Mensaje') ?><br />
<?php echo Form::submit('Enviar') ?><br />
</fieldset><br />
<?php echo Form::close() ?><br />
</div><br />
<br />
</source><br />
<br />
===Controller: index_controller.php===<br />
<br />
<source lang=php line><br />
<br />
Load::model('sendform');<br />
class IndexController extends AppController<br />
{<br />
<br />
public function index()<br />
{<br />
// Verificamos que se envian datos desde el formulario<br />
if (Input::hasPost('contactar')) {<br />
<br />
$form = new SendForm();<br />
// Procesamos envio de formulario<br />
if ($form->enviar(Input::post('contactar'))) {<br />
// Si se envia correctamente, limpiamos el formulario para evitar reenvios<br />
Input::delete('contactar');<br />
} <br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
<br />
</source><br />
<br />
===Notas finales===<br />
<br />
Este tipo de validaciones a nivel de servidor son una excelente herramienta para asegurarnos que los datos llegan correctamente. Validate también se puede combinar con la librería Filter para evitar inyecciones de código o ataques malicioso basados en formularios.<br />
<br />
<br />
<br />
[[Categoría:Tutoriales KumbiaPHP]]</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Validando_formulario_con_clase_kumbia_validate&diff=4052Validando formulario con clase kumbia validate2015-03-03T11:56:47Z<p>Admin: /* Modelo: sendform.php */</p>
<hr />
<div>'''Atención: Este tutorial esta basado en la version Spirit beta2 de KumbiaPHP Framework.'''<br />
<br />
Muchas veces necesitamos usar formularios para que una empresa/persona contacte con nosotros a través de nuestra web. Para validar los datos enviados y evitar un mal uso del mismo, el equipo de Kumbia ha desarrollado una nueva clase llamada Validate desvinculada de las validaciones propias de los modelos basados en ActiveRecord.<br />
<br />
Para este tutorial necesitaremos como mínimo un controller, un modelo y una vista. Si descargamos el paquete KumbiaPHP del GitHub podemos usar el controller por defecto y su vista y sólo nos quedaría crear el modelo.<br />
<br />
=== Modelo: sendform.php ===<br />
<br />
<source lang=php line><br />
class SendForm {<br />
<br />
private $reglas = array();<br />
<br />
private function __reglas() {<br />
<br />
$this->reglas = array(<br />
'NombreCompleto' => array(<br />
'required'=>array('error'=>'Indique su nombre.'),<br />
'alpha' =>array('error'=>'Nombre incompleto o incorrecto.')<br />
),<br />
'Email' => array(<br />
'required'=>array('error'=>'Indique su email.'),<br />
'email' => array('error'=>'Email incorrecto.')<br />
),<br />
'Movil' => array(<br />
'required'=>array('error'=>'Indique su teléfono / móvil.'),<br />
'length' => array('min'=>'9','max'=>'17','error'=>'Teléfono / móvil incorrecto'),<br />
'pattern' => array('regexp'=>'/^\+(?:[0-9] ?){6,14}[0-9]$/','error'=>'Teléfono incorrecto. Formato ejemplo. +34 862929929')<br />
),<br />
'Asunto' => array(<br />
'required'=>array('error'=>'Indique un asunto.'),<br />
),<br />
'Mensaje' => array(<br />
'required'=>array('error'=>'Indique un mensaje.'),<br />
'length'=>array('min'=>100, 'error'=>'Si es posible, concrete más en su mensaje.'),<br />
)<br />
);<br />
<br />
}<br />
<br />
<br />
// Envio de datos para generar email<br />
public function enviar($datos) {<br />
<br />
$validador = new Validate($datos, $this->reglas);<br />
if (!$validador->exec()) {<br />
$validador->flash();<br />
} else {<br />
<br />
// Enviar email<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</source><br />
<br />
===Vista: index.phtml===<br />
<br />
En nuestra vista debemos añadir los controles para los campos del formulario. Hemos usado la nomenclatura contactar.<field> para agrupar en una única variable los datos del formulario.<br />
<br />
<source lang=php line><br />
<br />
<div class="container"><br />
<?php echo Form::open() ?><br />
<?php View::content() ?><br />
<fieldset><legend>Contactar</legend><br />
<?php echo Form::label('Nombre completo:', 'contactar_NombreCompleto') ?> <?php echo Form::text('contactar.NombreCompleto') ?><br />
<?php echo Form::label('Email:', 'contactar_Email') ?> <?php echo Form::text('contactar.Email') ?><br />
<?php echo Form::label('Teléfono / Móvil:', 'contactar_Movil') ?> <?php echo Form::text('contactar.Movil') ?><br />
<?php echo Form::label('Mensaje:', 'contactar_Mensaje') ?> <?php echo Form::textarea('contactar.Mensaje') ?><br />
<?php echo Form::submit('Enviar') ?><br />
</fieldset><br />
<?php echo Form::close() ?><br />
</div><br />
<br />
</source><br />
<br />
===Controller: index_controller.php===<br />
<br />
<source lang=php line><br />
<br />
Load::model('sendform');<br />
class IndexController extends AppController<br />
{<br />
<br />
public function index()<br />
{<br />
// Verificamos que se envian datos desde el formulario<br />
if (Input::hasPost('contactar')) {<br />
<br />
$form = new SendForm();<br />
// Procesamos envio de formulario<br />
if ($form->enviar(Input::post('contactar'))) {<br />
// Si se envia correctamente, limpiamos el formulario para evitar reenvios<br />
Input::delete('contactar');<br />
} <br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
<br />
</source><br />
<br />
===Notas finales===<br />
<br />
Este tipo de validaciones a nivel de servidor son una excelente herramienta para asegurarnos que los datos llegan correctamente. Validate también se puede combinar con la librería Filter para evitar inyecciones de código o ataques malicioso basados en formularios.<br />
<br />
<br />
<br />
[[Categoría:Tutoriales KumbiaPHP]]</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Validando_formulario_con_clase_kumbia_validate&diff=4051Validando formulario con clase kumbia validate2015-03-03T11:50:51Z<p>Admin: </p>
<hr />
<div>'''Atención: Este tutorial esta basado en la version Spirit beta2 de KumbiaPHP Framework.'''<br />
<br />
Muchas veces necesitamos usar formularios para que una empresa/persona contacte con nosotros a través de nuestra web. Para validar los datos enviados y evitar un mal uso del mismo, el equipo de Kumbia ha desarrollado una nueva clase llamada Validate desvinculada de las validaciones propias de los modelos basados en ActiveRecord.<br />
<br />
Para este tutorial necesitaremos como mínimo un controller, un modelo y una vista. Si descargamos el paquete KumbiaPHP del GitHub podemos usar el controller por defecto y su vista y sólo nos quedaría crear el modelo.<br />
<br />
=== Modelo: sendform.php ===<br />
<br />
<source lang=php line><br />
class SendForm {<br />
<br />
private $reglas = array();<br />
<br />
private function __reglas() {<br />
<br />
$this->reglas = array(<br />
'NombreCompleto' => array(<br />
'required'=>array('error'=>'Indique su nombre.'),<br />
'alpha' =>array('error'=>'Nombre incompleto o incorrecto.')<br />
),<br />
'Email' => array(<br />
'required'=>array('error'=>'Indique su email.'),<br />
'email' => array('error'=>'Email incorrecto.')<br />
),<br />
'Movil' => array(<br />
'required'=>array('error'=>'Indique su teléfono / móvil.'),<br />
'length' => array('min'=>'9','max'=>'17','error'=>'Teléfono / móvil incorrecto'),<br />
'pattern' => array('regexp'=>'/^\+(?:[0-9] ?){6,14}[0-9]$/','error'=>'Teléfono incorrecto. Formato ejemplo. +34 862929929')<br />
),<br />
'Asunto' => array(<br />
'required'=>array('error'=>'Indique un asunto.'),<br />
),<br />
'Mensaje' => array(<br />
'required'=>array('error'=>'Indique un mensaje.'),<br />
'length'=>array('min'=>100, 'error'=>'Si es posible, concrete más en su mensaje.'),<br />
)<br />
);<br />
<br />
}<br />
<br />
<br />
// Envio de datos para generar email<br />
public function enviar($datos) {<br />
<br />
$validador = new Validate($datos, $this->reglas);<br />
if (!$validador->exec()) {<br />
$validador->flash();<br />
} else {<br />
<br />
$mensaje = $this->crearMensaje($datos);<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</source><br />
<br />
===Vista: index.phtml===<br />
<br />
En nuestra vista debemos añadir los controles para los campos del formulario. Hemos usado la nomenclatura contactar.<field> para agrupar en una única variable los datos del formulario.<br />
<br />
<source lang=php line><br />
<br />
<div class="container"><br />
<?php echo Form::open() ?><br />
<?php View::content() ?><br />
<fieldset><legend>Contactar</legend><br />
<?php echo Form::label('Nombre completo:', 'contactar_NombreCompleto') ?> <?php echo Form::text('contactar.NombreCompleto') ?><br />
<?php echo Form::label('Email:', 'contactar_Email') ?> <?php echo Form::text('contactar.Email') ?><br />
<?php echo Form::label('Teléfono / Móvil:', 'contactar_Movil') ?> <?php echo Form::text('contactar.Movil') ?><br />
<?php echo Form::label('Mensaje:', 'contactar_Mensaje') ?> <?php echo Form::textarea('contactar.Mensaje') ?><br />
<?php echo Form::submit('Enviar') ?><br />
</fieldset><br />
<?php echo Form::close() ?><br />
</div><br />
<br />
</source><br />
<br />
===Controller: index_controller.php===<br />
<br />
<source lang=php line><br />
<br />
Load::model('sendform');<br />
class IndexController extends AppController<br />
{<br />
<br />
public function index()<br />
{<br />
// Verificamos que se envian datos desde el formulario<br />
if (Input::hasPost('contactar')) {<br />
<br />
$form = new SendForm();<br />
// Procesamos envio de formulario<br />
if ($form->enviar(Input::post('contactar'))) {<br />
// Si se envia correctamente, limpiamos el formulario para evitar reenvios<br />
Input::delete('contactar');<br />
} <br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
<br />
</source><br />
<br />
===Notas finales===<br />
<br />
Este tipo de validaciones a nivel de servidor son una excelente herramienta para asegurarnos que los datos llegan correctamente. Validate también se puede combinar con la librería Filter para evitar inyecciones de código o ataques malicioso basados en formularios.<br />
<br />
<br />
<br />
[[Categoría:Tutoriales KumbiaPHP]]</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Validando_formulario_con_clase_kumbia_validate&diff=4050Validando formulario con clase kumbia validate2015-03-03T11:42:42Z<p>Admin: </p>
<hr />
<div>'''Atención: Este tutorial esta basado en la version Spirit beta2 de KumbiaPHP Framework.'''<br />
<br />
Muchas veces necesitamos usar formularios para que una empresa/persona contacte con nosotros a través de nuestra web. Para validar los datos enviados y evitar un mal uso del mismo, el equipo de Kumbia ha desarrollado una nueva clase llamada Validate desvinculada de las validaciones propias de los modelos basados en ActiveRecord.<br />
<br />
Para este tutorial necesitaremos como mínimo un controller, un modelo y una vista. Si descargamos el paquete KumbiaPHP del GitHub podemos usar el controller por defecto y su vista y sólo nos quedaría crear el modelo.<br />
<br />
=== Modelo: sendform.php ===<br />
<br />
<source lang=php line><br />
class SendForm {<br />
<br />
private $reglas = array();<br />
<br />
private function __reglas() {<br />
<br />
$this->reglas = array(<br />
'NombreCompleto' => array(<br />
'required'=>array('error'=>'Indique su nombre.'),<br />
'alpha' =>array('error'=>'Nombre incompleto o incorrecto.')<br />
),<br />
'Email' => array(<br />
'required'=>array('error'=>'Indique su email.'),<br />
'email' => array('error'=>'Email incorrecto.')<br />
),<br />
'Movil' => array(<br />
'required'=>array('error'=>'Indique su teléfono / móvil.'),<br />
'length' => array('min'=>'9','max'=>'17','error'=>'Teléfono / móvil incorrecto'),<br />
'pattern' => array('regexp'=>'/^\+(?:[0-9] ?){6,14}[0-9]$/','error'=>'Teléfono incorrecto. Formato ejemplo. +34 862929929')<br />
),<br />
'Asunto' => array(<br />
'required'=>array('error'=>'Indique un asunto.'),<br />
),<br />
'Mensaje' => array(<br />
'required'=>array('error'=>'Indique un mensaje.'),<br />
'length'=>array('min'=>100, 'error'=>'Si es posible, concrete más en su mensaje.'),<br />
)<br />
);<br />
<br />
}<br />
<br />
<br />
// Envio de datos para generar email<br />
public function enviar($datos) {<br />
<br />
$validador = new Validate($datos, $this->reglas);<br />
if (!$validador->exec()) {<br />
$validador->flash();<br />
} else {<br />
<br />
$mensaje = $this->crearMensaje($datos);<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</source><br />
<br />
===Vista: index.phtml===<br />
<br />
En nuestra vista debemos añadir los controles para los campos del formulario. Hemos usado la nomenclatura contactar.<field> para agrupar en una única variable los datos del formulario.<br />
<br />
<source lang=php line><br />
<br />
<div class="container"><br />
<?php echo Form::open() ?><br />
<?php View::content() ?><br />
<fieldset><legend>Contactar</legend><br />
<?php echo Form::label('Nombre completo:', 'contactar_NombreCompleto') ?> <?php echo Form::text('contactar.NombreCompleto') ?><br />
<?php echo Form::label('Email:', 'contactar_Email') ?> <?php echo Form::text('contactar.Email') ?><br />
<?php echo Form::label('Teléfono / Móvil:', 'contactar_Movil') ?> <?php echo Form::text('contactar.Movil') ?><br />
<?php echo Form::label('Mensaje:', 'contactar_Mensaje') ?> <?php echo Form::textarea('contactar.Mensaje') ?><br />
<?php echo Form::submit('Enviar') ?><br />
</fieldset><br />
<?php echo Form::close() ?><br />
</div><br />
<br />
</source><br />
<br />
===Controller: index_controller.php===<br />
<br />
<source lang=php line><br />
<br />
Load::model('sendform');<br />
class IndexController extends AppController<br />
{<br />
<br />
public function index()<br />
{<br />
// Verificamos que se envian datos desde el formulario<br />
if (Input::hasPost('contactar')) {<br />
<br />
$form = new SendForm();<br />
// Procesamos envio de formulario<br />
if ($form->enviar(Input::post('contactar'))) {<br />
// Si se envia correctamente, limpiamos el formulario para evitar reenvios<br />
Input::delete('contactar');<br />
} <br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
<br />
</source><br />
<br />
===Notas finales===<br />
<br />
Este tipo de validaciones a nivel de servidor son una excelente herramienta para asegurarnos que los datos llegan correctamente. Validate también se puede combinar con la librería Filter para evitar inyecciones de código o ataques malicioso basados en formularios.<br />
<br />
<br />
<br />
[ En desarrollo ]</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Team_Development_KumbiaPHP_Framework&diff=3743Team Development KumbiaPHP Framework2013-07-05T13:41:37Z<p>Admin: /* KumbiaPHP Team Developers */</p>
<hr />
<div>Siempre hemos creído que debemos dar el mérito a quien lo merece por eso hemos creado esta página para de alguna forma reconocer el trabajo y tiempo que han dedicado muchas personas en ayudar a '''kumbiaphp web & app framework'''<br />
<br />
==KumbiaPHP Team Developers==<br />
'''KumbiaPHP web & app Framework''' es un esfuerzo por producir un framework que ayude a reducir el tiempo de desarrollo de una aplicación web sin producir efectos sobre los programadores. En este sentido listamos sin orden de preferencia al grupo de persona que en gran medida han hecho posible con su tiempo que KumbiaPHP web & app Framework, sea el proyecto que todos deseamos.<br />
<br />
* Joan Miquel Abrines ([https://launchpad.net/~joanhey Joanhey]) España, Mallorca<br />
* Deivinson Tejeda ([https://launchpad.net/~deivinsontejeda CaChi]) Venezuela, Caracas<br />
* Emilio Silveira ([https://launchpad.net/~emilio-rst emilio_rst]) Venezuela, Guarico<br />
* Andres Felipe Gutierrez ([https://launchpad.net/~gutierrezandresfelipe anthemfor182]) Colombia,<br />
* César Caballero ([https://launchpad.net/~webmaster-ccaballero Phillipo]) España, Madrid<br />
* Alberto Berroteran ([https://launchpad.net/~abweb Ashrey]) Venezuela, Maracay<br />
* Manuel Aguirre ([https://launchpad.net/~programador-manuel manuel__j555]) Venezuela, Maracay<br />
<br />
==Colaboradores Manual==<br />
William Javier Del Valle Meza ([https://launchpad.net/~micky-chattagena Micky]) Colombia<br />
<br />
==Colaboradores General==<br />
Fidel Oyarzo (FiDeLio) Chile - Ayudando en el [http://foro.kumbiaphp.com/profile/discussions/805/FiDeLio Foro KumbiaPHP Framework].<br />
<br />
==Arte y Diseño==<br />
* Nohemi Rojas, diseñó nuevamente la imagen actual de kumbiaphp, ahora tenemos el [http://en.wikipedia.org/wiki/Scalable_Vector_Graphics .svg] [http://es.wikipedia.org/wiki/Archivo:Kumbiaphp_framework.png logotipo]<br />
* Gregorio Montesinos (gOro), diseños múltiples, paper, etc...<br />
<br />
<br />
<font size=+10>Por último sin menos mérito dar un agradecimiento muy especial a toda la comunidad que acompaña a este proyecto por sus grandes aportes para seguir creciendo.</font><br />
<br />
<br />
'''NOTA: Si olvidamos agregarte en esta página discúlpanos y avisa lo más pronto posible a la dirección de correo info@kumbiaphp.com para que seas agregado(a).'''</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Asociaciones&diff=171Asociaciones2009-03-01T22:25:43Z<p>Admin: /* Tienes un (has_one) */</p>
<hr />
<div>=Introduccion=<br />
<br />
Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clientes pero un cliente solo tiene una ciudad. En un esquema de base de datos, estas relaciones son enlazadas mediante el uso de llaves primarias y foráneas. <br />
<br />
Como ActiveRecord trabaja con la convención: La llave foránea tiene el nombre de la tabla y termina en id, así: ciudad_id, esto es una relación a la tabla ciudad a su llave primaria id. <br />
<br />
Así que, sabiendo esto, quisiéramos que en vez de decir: <br />
<br />
<source lang=php><br />
1.$ciudad_id = $cliente->ciudad_id;<br />
2.$ciudad = $Ciudad->find($ciudad_id);<br />
3.print $ciudad->nombre;<br />
</source><br />
<br />
mejor fuera: <br />
<br />
<source lang=php><br />
1.print $cliente->getCiudad()->nombre;<br />
</source><br />
<br />
Gran parte de la magia que tiene ActiveRecord es esto, ya que convierte las llaves foráneas en sentencias de alto nivel, fáciles de comprender y de trabajar. <br />
<br />
=Pertenece (belongs_to)=<br />
<br />
Este tipo de relación se efectúa con el método “belongs_to”, en esta la llave foránea se encuentra en la tabla del modelo de donde se invoca el método. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
belongs_to($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->belongs_to('persona');<br />
2.$this->belongs_to('vendedor', 'model: Persona')<br />
3.$this->belongs_to('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
'''En el modelo Libro:'''<br />
<br />
<source lang=php><br />
1.class Libro extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->belongs_to('persona');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tienes un (has_one)=<br />
<br />
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
has_one($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->has_one('persona');<br />
2.$this->has_one('vendedor', 'model: Persona')<br />
3.$this->has_one('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_one('datos_personales');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene muchos (has_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_many”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a muchos en el modelo entidad relación.<br />
<br />
has_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->has_many('persona');<br />
2.$this->has_many('vendedor', 'model: Persona')<br />
3.$this->has_many('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_many('libro');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene y pertenece a muchos (has_and_belongs_to_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_and_belongs_to_many”, esta se efectúa a través de una tabla que se encarga de enlazar los dos modelos. Corresponde a una relación muchos a muchos en el modelo entidad relación. Este tipo de relación tiene la desventaja de que no es soportada en el ámbito de múltiples conexiones de ActiveRecord, para lograr que funcione con multiples conexiones, se puede emular a través de dos relaciones has_many al modelo de la tabla que relaciona.<br />
<br />
has_and_belongs_to_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
key: nombre del campo que contendrá el valor de la llave primaria en la tabla intermedia que contendrá los campos de la relación. Por defecto corresponde al nombre del modelo con que se va a relacionar con el sufijo “_id”.<br />
<br />
through: tabla a través de la cual se establece la relación muchos a muchos. Por defecto se forma por el nombre de la tabla del modelo que tiene el nombre de tabla mas largo y como prefijo un “_” y el nombre de la tabla del otro modelo.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
1.$this->has_and_belongs_to_many('persona');<br />
2.$this->has_and_belongs_to_many('cargos', 'model: Cargo', 'fk: id_cargo', 'key: id_persona', 'through: cargo_persona');<br />
<br />
'''En el modelo Persona:'''<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_and_belongs_to_many('cargo');<br />
4. }<br />
5.}<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Asociaciones&diff=170Asociaciones2009-03-01T22:25:24Z<p>Admin: /* Tiene y pertenece a muchos (has_and_belongs_to_many) */</p>
<hr />
<div>=Introduccion=<br />
<br />
Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clientes pero un cliente solo tiene una ciudad. En un esquema de base de datos, estas relaciones son enlazadas mediante el uso de llaves primarias y foráneas. <br />
<br />
Como ActiveRecord trabaja con la convención: La llave foránea tiene el nombre de la tabla y termina en id, así: ciudad_id, esto es una relación a la tabla ciudad a su llave primaria id. <br />
<br />
Así que, sabiendo esto, quisiéramos que en vez de decir: <br />
<br />
<source lang=php><br />
1.$ciudad_id = $cliente->ciudad_id;<br />
2.$ciudad = $Ciudad->find($ciudad_id);<br />
3.print $ciudad->nombre;<br />
</source><br />
<br />
mejor fuera: <br />
<br />
<source lang=php><br />
1.print $cliente->getCiudad()->nombre;<br />
</source><br />
<br />
Gran parte de la magia que tiene ActiveRecord es esto, ya que convierte las llaves foráneas en sentencias de alto nivel, fáciles de comprender y de trabajar. <br />
<br />
=Pertenece (belongs_to)=<br />
<br />
Este tipo de relación se efectúa con el método “belongs_to”, en esta la llave foránea se encuentra en la tabla del modelo de donde se invoca el método. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
belongs_to($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->belongs_to('persona');<br />
2.$this->belongs_to('vendedor', 'model: Persona')<br />
3.$this->belongs_to('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
'''En el modelo Libro:'''<br />
<br />
<source lang=php><br />
1.class Libro extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->belongs_to('persona');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tienes un (has_one)=<br />
<br />
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
has_one($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
<source lang=php><br />
1.$this->has_one('persona');<br />
2.$this->has_one('vendedor', 'model: Persona')<br />
3.$this->has_one('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_one('datos_personales');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene muchos (has_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_many”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a muchos en el modelo entidad relación.<br />
<br />
has_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->has_many('persona');<br />
2.$this->has_many('vendedor', 'model: Persona')<br />
3.$this->has_many('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_many('libro');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene y pertenece a muchos (has_and_belongs_to_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_and_belongs_to_many”, esta se efectúa a través de una tabla que se encarga de enlazar los dos modelos. Corresponde a una relación muchos a muchos en el modelo entidad relación. Este tipo de relación tiene la desventaja de que no es soportada en el ámbito de múltiples conexiones de ActiveRecord, para lograr que funcione con multiples conexiones, se puede emular a través de dos relaciones has_many al modelo de la tabla que relaciona.<br />
<br />
has_and_belongs_to_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
key: nombre del campo que contendrá el valor de la llave primaria en la tabla intermedia que contendrá los campos de la relación. Por defecto corresponde al nombre del modelo con que se va a relacionar con el sufijo “_id”.<br />
<br />
through: tabla a través de la cual se establece la relación muchos a muchos. Por defecto se forma por el nombre de la tabla del modelo que tiene el nombre de tabla mas largo y como prefijo un “_” y el nombre de la tabla del otro modelo.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
1.$this->has_and_belongs_to_many('persona');<br />
2.$this->has_and_belongs_to_many('cargos', 'model: Cargo', 'fk: id_cargo', 'key: id_persona', 'through: cargo_persona');<br />
<br />
'''En el modelo Persona:'''<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_and_belongs_to_many('cargo');<br />
4. }<br />
5.}<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Asociaciones&diff=169Asociaciones2009-03-01T22:24:54Z<p>Admin: /* Tiene muchos (has_many) */</p>
<hr />
<div>=Introduccion=<br />
<br />
Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clientes pero un cliente solo tiene una ciudad. En un esquema de base de datos, estas relaciones son enlazadas mediante el uso de llaves primarias y foráneas. <br />
<br />
Como ActiveRecord trabaja con la convención: La llave foránea tiene el nombre de la tabla y termina en id, así: ciudad_id, esto es una relación a la tabla ciudad a su llave primaria id. <br />
<br />
Así que, sabiendo esto, quisiéramos que en vez de decir: <br />
<br />
<source lang=php><br />
1.$ciudad_id = $cliente->ciudad_id;<br />
2.$ciudad = $Ciudad->find($ciudad_id);<br />
3.print $ciudad->nombre;<br />
</source><br />
<br />
mejor fuera: <br />
<br />
<source lang=php><br />
1.print $cliente->getCiudad()->nombre;<br />
</source><br />
<br />
Gran parte de la magia que tiene ActiveRecord es esto, ya que convierte las llaves foráneas en sentencias de alto nivel, fáciles de comprender y de trabajar. <br />
<br />
=Pertenece (belongs_to)=<br />
<br />
Este tipo de relación se efectúa con el método “belongs_to”, en esta la llave foránea se encuentra en la tabla del modelo de donde se invoca el método. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
belongs_to($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->belongs_to('persona');<br />
2.$this->belongs_to('vendedor', 'model: Persona')<br />
3.$this->belongs_to('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
'''En el modelo Libro:'''<br />
<br />
<source lang=php><br />
1.class Libro extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->belongs_to('persona');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tienes un (has_one)=<br />
<br />
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
has_one($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
<source lang=php><br />
1.$this->has_one('persona');<br />
2.$this->has_one('vendedor', 'model: Persona')<br />
3.$this->has_one('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_one('datos_personales');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene muchos (has_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_many”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a muchos en el modelo entidad relación.<br />
<br />
has_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->has_many('persona');<br />
2.$this->has_many('vendedor', 'model: Persona')<br />
3.$this->has_many('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_many('libro');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene y pertenece a muchos (has_and_belongs_to_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_and_belongs_to_many”, esta se efectúa a través de una tabla que se encarga de enlazar los dos modelos. Corresponde a una relación muchos a muchos en el modelo entidad relación. Este tipo de relación tiene la desventaja de que no es soportada en el ámbito de múltiples conexiones de ActiveRecord, para lograr que funcione con multiples conexiones, se puede emular a través de dos relaciones has_many al modelo de la tabla que relaciona.<br />
<br />
has_and_belongs_to_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
key: nombre del campo que contendrá el valor de la llave primaria en la tabla intermedia que contendrá los campos de la relación. Por defecto corresponde al nombre del modelo con que se va a relacionar con el sufijo “_id”.<br />
<br />
through: tabla a través de la cual se establece la relación muchos a muchos. Por defecto se forma por el nombre de la tabla del modelo que tiene el nombre de tabla mas largo y como prefijo un “_” y el nombre de la tabla del otro modelo.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->has_and_belongs_to_many('persona');<br />
2.$this->has_and_belongs_to_many('cargos', 'model: Cargo', 'fk: id_cargo', 'key: id_persona', 'through: cargo_persona');<br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_and_belongs_to_many('cargo');<br />
4. }<br />
5.}<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Asociaciones&diff=168Asociaciones2009-03-01T22:24:31Z<p>Admin: /* Tienes un (has_one) */</p>
<hr />
<div>=Introduccion=<br />
<br />
Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clientes pero un cliente solo tiene una ciudad. En un esquema de base de datos, estas relaciones son enlazadas mediante el uso de llaves primarias y foráneas. <br />
<br />
Como ActiveRecord trabaja con la convención: La llave foránea tiene el nombre de la tabla y termina en id, así: ciudad_id, esto es una relación a la tabla ciudad a su llave primaria id. <br />
<br />
Así que, sabiendo esto, quisiéramos que en vez de decir: <br />
<br />
<source lang=php><br />
1.$ciudad_id = $cliente->ciudad_id;<br />
2.$ciudad = $Ciudad->find($ciudad_id);<br />
3.print $ciudad->nombre;<br />
</source><br />
<br />
mejor fuera: <br />
<br />
<source lang=php><br />
1.print $cliente->getCiudad()->nombre;<br />
</source><br />
<br />
Gran parte de la magia que tiene ActiveRecord es esto, ya que convierte las llaves foráneas en sentencias de alto nivel, fáciles de comprender y de trabajar. <br />
<br />
=Pertenece (belongs_to)=<br />
<br />
Este tipo de relación se efectúa con el método “belongs_to”, en esta la llave foránea se encuentra en la tabla del modelo de donde se invoca el método. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
belongs_to($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->belongs_to('persona');<br />
2.$this->belongs_to('vendedor', 'model: Persona')<br />
3.$this->belongs_to('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
'''En el modelo Libro:'''<br />
<br />
<source lang=php><br />
1.class Libro extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->belongs_to('persona');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tienes un (has_one)=<br />
<br />
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
has_one($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
<source lang=php><br />
1.$this->has_one('persona');<br />
2.$this->has_one('vendedor', 'model: Persona')<br />
3.$this->has_one('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_one('datos_personales');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene muchos (has_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_many”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a muchos en el modelo entidad relación.<br />
<br />
has_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
<source lang=php><br />
1.$this->has_many('persona');<br />
2.$this->has_many('vendedor', 'model: Persona')<br />
3.$this->has_many('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_many('libro');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene y pertenece a muchos (has_and_belongs_to_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_and_belongs_to_many”, esta se efectúa a través de una tabla que se encarga de enlazar los dos modelos. Corresponde a una relación muchos a muchos en el modelo entidad relación. Este tipo de relación tiene la desventaja de que no es soportada en el ámbito de múltiples conexiones de ActiveRecord, para lograr que funcione con multiples conexiones, se puede emular a través de dos relaciones has_many al modelo de la tabla que relaciona.<br />
<br />
has_and_belongs_to_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
key: nombre del campo que contendrá el valor de la llave primaria en la tabla intermedia que contendrá los campos de la relación. Por defecto corresponde al nombre del modelo con que se va a relacionar con el sufijo “_id”.<br />
<br />
through: tabla a través de la cual se establece la relación muchos a muchos. Por defecto se forma por el nombre de la tabla del modelo que tiene el nombre de tabla mas largo y como prefijo un “_” y el nombre de la tabla del otro modelo.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->has_and_belongs_to_many('persona');<br />
2.$this->has_and_belongs_to_many('cargos', 'model: Cargo', 'fk: id_cargo', 'key: id_persona', 'through: cargo_persona');<br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_and_belongs_to_many('cargo');<br />
4. }<br />
5.}<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Asociaciones&diff=167Asociaciones2009-03-01T22:17:07Z<p>Admin: </p>
<hr />
<div>=Introduccion=<br />
<br />
Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clientes pero un cliente solo tiene una ciudad. En un esquema de base de datos, estas relaciones son enlazadas mediante el uso de llaves primarias y foráneas. <br />
<br />
Como ActiveRecord trabaja con la convención: La llave foránea tiene el nombre de la tabla y termina en id, así: ciudad_id, esto es una relación a la tabla ciudad a su llave primaria id. <br />
<br />
Así que, sabiendo esto, quisiéramos que en vez de decir: <br />
<br />
<source lang=php><br />
1.$ciudad_id = $cliente->ciudad_id;<br />
2.$ciudad = $Ciudad->find($ciudad_id);<br />
3.print $ciudad->nombre;<br />
</source><br />
<br />
mejor fuera: <br />
<br />
<source lang=php><br />
1.print $cliente->getCiudad()->nombre;<br />
</source><br />
<br />
Gran parte de la magia que tiene ActiveRecord es esto, ya que convierte las llaves foráneas en sentencias de alto nivel, fáciles de comprender y de trabajar. <br />
<br />
=Pertenece (belongs_to)=<br />
<br />
Este tipo de relación se efectúa con el método “belongs_to”, en esta la llave foránea se encuentra en la tabla del modelo de donde se invoca el método. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
belongs_to($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
'''Parámetros con nombre:'''<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
'''Ejemplos de uso:'''<br />
<br />
<source lang=php><br />
1.$this->belongs_to('persona');<br />
2.$this->belongs_to('vendedor', 'model: Persona')<br />
3.$this->belongs_to('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
'''En el modelo Libro:'''<br />
<br />
<source lang=php><br />
1.class Libro extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->belongs_to('persona');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tienes un (has_one)=<br />
<br />
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
has_one($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
<source lang=php><br />
1.$this->has_one('persona');<br />
2.$this->has_one('vendedor', 'model: Persona')<br />
3.$this->has_one('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_one('datos_personales');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene muchos (has_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_many”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a muchos en el modelo entidad relación.<br />
<br />
has_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
<source lang=php><br />
1.$this->has_many('persona');<br />
2.$this->has_many('vendedor', 'model: Persona')<br />
3.$this->has_many('funcionario', 'model: Persona', 'fk: personal_id')<br />
</source><br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_many('libro');<br />
4. }<br />
5.}<br />
</source><br />
<br />
=Tiene y pertenece a muchos (has_and_belongs_to_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_and_belongs_to_many”, esta se efectúa a través de una tabla que se encarga de enlazar los dos modelos. Corresponde a una relación muchos a muchos en el modelo entidad relación. Este tipo de relación tiene la desventaja de que no es soportada en el ámbito de múltiples conexiones de ActiveRecord, para lograr que funcione con multiples conexiones, se puede emular a través de dos relaciones has_many al modelo de la tabla que relaciona.<br />
<br />
has_and_belongs_to_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
key: nombre del campo que contendrá el valor de la llave primaria en la tabla intermedia que contendrá los campos de la relación. Por defecto corresponde al nombre del modelo con que se va a relacionar con el sufijo “_id”.<br />
<br />
through: tabla a través de la cual se establece la relación muchos a muchos. Por defecto se forma por el nombre de la tabla del modelo que tiene el nombre de tabla mas largo y como prefijo un “_” y el nombre de la tabla del otro modelo.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->has_and_belongs_to_many('persona');<br />
2.$this->has_and_belongs_to_many('cargos', 'model: Cargo', 'fk: id_cargo', 'key: id_persona', 'through: cargo_persona');<br />
<br />
En el modelo Persona:<br />
<br />
<source lang=php><br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_and_belongs_to_many('cargo');<br />
4. }<br />
5.}<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Asociaciones&diff=166Asociaciones2009-03-01T22:14:20Z<p>Admin: Página creada con 'Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clie...'</p>
<hr />
<div>Muchas aplicaciones trabajan con múltiples tablas en una base de datos y normalmente hay relaciones entre esas tablas. Por ejemplo, una ciudad puede ser el hogar de muchos clientes pero un cliente solo tiene una ciudad. En un esquema de base de datos, estas relaciones son enlazadas mediante el uso de llaves primarias y foráneas. <br />
<br />
Como ActiveRecord trabaja con la convención: La llave foránea tiene el nombre de la tabla y termina en id, así: ciudad_id, esto es una relación a la tabla ciudad a su llave primaria id. <br />
<br />
Así que, sabiendo esto, quisiéramos que en vez de decir: <br />
<br />
1.$ciudad_id = $cliente->ciudad_id;<br />
2.$ciudad = $Ciudad->find($ciudad_id);<br />
3.print $ciudad->nombre;<br />
<br />
mejor fuera: <br />
<br />
1.print $cliente->getCiudad()->nombre;<br />
<br />
Gran parte de la magia que tiene ActiveRecord es esto, ya que convierte las llaves foráneas en sentencias de alto nivel, fáciles de comprender y de trabajar. <br />
<br />
=Pertenece (belongs_to)=<br />
<br />
Este tipo de relación se efectúa con el método “belongs_to”, en esta la llave foránea se encuentra en la tabla del modelo de donde se invoca el método. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
belongs_to($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->belongs_to('persona');<br />
2.$this->belongs_to('vendedor', 'model: Persona')<br />
3.$this->belongs_to('funcionario', 'model: Persona', 'fk: personal_id')<br />
<br />
En el modelo Libro:<br />
<br />
1.class Libro extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->belongs_to('persona');<br />
4. }<br />
5.}<br />
<br />
=Tienes un (has_one)=<br />
<br />
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.<br />
<br />
has_one($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->has_one('persona');<br />
2.$this->has_one('vendedor', 'model: Persona')<br />
3.$this->has_one('funcionario', 'model: Persona', 'fk: personal_id')<br />
<br />
<br />
En el modelo Persona:<br />
<br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_one('datos_personales');<br />
4. }<br />
5.}<br />
<br />
=Tiene muchos (has_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_many”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a muchos en el modelo entidad relación.<br />
<br />
has_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->has_many('persona');<br />
2.$this->has_many('vendedor', 'model: Persona')<br />
3.$this->has_many('funcionario', 'model: Persona', 'fk: personal_id')<br />
<br />
<br />
En el modelo Persona:<br />
<br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_many('libro');<br />
4. }<br />
5.}<br />
<br />
=Tiene y pertenece a muchos (has_and_belongs_to_many)=<br />
<br />
Este tipo de relación se efectúa con el método “has_and_belongs_to_many”, esta se efectúa a través de una tabla que se encarga de enlazar los dos modelos. Corresponde a una relación muchos a muchos en el modelo entidad relación. Este tipo de relación tiene la desventaja de que no es soportada en el ámbito de múltiples conexiones de ActiveRecord, para lograr que funcione con multiples conexiones, se puede emular a través de dos relaciones has_many al modelo de la tabla que relaciona.<br />
<br />
has_and_belongs_to_many($relation)<br />
<br />
$relation (string): nombre de la relación.<br />
<br />
Parámetros con nombre:<br />
<br />
model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador<br />
<br />
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.<br />
<br />
key: nombre del campo que contendrá el valor de la llave primaria en la tabla intermedia que contendrá los campos de la relación. Por defecto corresponde al nombre del modelo con que se va a relacionar con el sufijo “_id”.<br />
<br />
through: tabla a través de la cual se establece la relación muchos a muchos. Por defecto se forma por el nombre de la tabla del modelo que tiene el nombre de tabla mas largo y como prefijo un “_” y el nombre de la tabla del otro modelo.<br />
<br />
Ejemplos de uso:<br />
<br />
1.$this->has_and_belongs_to_many('persona');<br />
2.$this->has_and_belongs_to_many('cargos', 'model: Cargo', 'fk: id_cargo', 'key: id_persona', 'through: cargo_persona');<br />
<br />
En el modelo Persona:<br />
<br />
1.class Persona extends ActiveRecord {<br />
2. public function initialize() {<br />
3. $this->has_and_belongs_to_many('cargo');<br />
4. }<br />
5.}</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=165Indice2009-03-01T22:11:42Z<p>Admin: </p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#count<br />
#sum<br />
#count_by_sql<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#average<br />
#maximum<br />
#minimum<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
==[[Callbacks ActiveRecord]]==<br />
<br />
#Introduccion<br />
#before_validation<br />
#before_validation_on_create<br />
#before_validation_on_update<br />
#after_validation_on_create<br />
#after_validation_on_update<br />
#after_validation<br />
#before_save<br />
#before_update<br />
#before_create<br />
#after_update<br />
#after_create<br />
#after_save<br />
#before_delete<br />
#after_delete<br />
<br />
[[Asociaciones]]<br />
<br />
[[Paginadores]]<br />
<br />
[[Ejemplo Completo]]<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=163Consultas2009-03-01T21:39:40Z<p>Admin: /* find */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
'''Ejemplo'''<br />
<source lang=php line><br />
$unicos = $this->Usuarios->distinct(“estado”) <br />
# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta.<br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso)") as $usuario){<br />
print $Usuario->nombre;<br />
}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso.<br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso) limit 1");<br />
print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“id=’123’”);<br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
'''Nota:''' No es necesario usar find('id: $id') para el find, se usa directament find($id)<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=154Indice2009-03-01T15:45:24Z<p>Admin: </p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#count<br />
#sum<br />
#count_by_sql<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#average<br />
#maximum<br />
#minimum<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
==[[Callbacks ActiveRecord]]==<br />
<br />
#Introduccion<br />
#before_validation<br />
#before_validation_on_create<br />
#before_validation_on_update<br />
#after_validation_on_create<br />
#after_validation_on_update<br />
#after_validation<br />
#before_save<br />
#before_update<br />
#before_create<br />
#after_update<br />
#after_create<br />
#after_save<br />
#before_delete<br />
#after_delete<br />
<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Callbacks_ActiveRecord&diff=153Callbacks ActiveRecord2009-03-01T15:44:08Z<p>Admin: </p>
<hr />
<div>= Introduccion =<br />
El ActiveRecord controla el ciclo de vida de los objetos creados y leídos, supervisando cuando se modifican, se almacenan o se borran. Usando callbacks (o eventos), el ActiveRecord nos permite intervenir en esta supervisión. Podemos escribir el código que pueda ser invocado en cualquier evento significativo en la vida de un objeto. Con los callbacks podemos realizar validación compleja, revisar los valores que vienen desde y hacia la base de datos, e incluso evitar que ciertas operaciones finalicen. Un ejemplo de estos callbacks puede ser una validación en productos que evita que productos ‘activos’ sean borrados. <br />
<br />
<source lang=php line><br />
class User extends ActiveRecord {<br />
<br />
public before_delete = “no_borrar_activos”;<br />
<br />
public function no_borrar_activos(){<br />
if($this->estado==’A’){<br />
Flash::error(‘No se puede borrar Productos Activos’);<br />
return ‘cancel’;<br />
}<br />
}<br />
<br />
public function after_delete(){<br />
Flash::success("Se borro el usuario $this->nombre");<br />
}<br />
<br />
}<br />
</source><br />
<br />
A continuación otros callbacks que podemos encontrar en ActiveRecord. El orden en el que son presentados es en el que se llaman si están definidos:<br />
<br />
=before_validation=<br />
<br />
Es llamado justo antes de realizar el proceso de validación por parte de Kumbia. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_validation_on_create=<br />
<br />
Es llamado justo antes de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de inserción en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_validation_on_update =<br />
<br />
Es llamado justo antes de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de actualización en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=after_validation_on_create =<br />
<br />
Es llamado justo después de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de inserción en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=after_validation_on_update =<br />
<br />
Es llamado justo después de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de actualización en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=after_validation =<br />
<br />
Es llamado justo después de realizar el proceso de validación por parte de Kumbia. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_save =<br />
<br />
Es llamado justo antes de realizar el proceso de guardar cuando se llama el método save en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_update=<br />
<br />
Es llamado justo antes de realizar el proceso de actualización cuando se llama el método save o update en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_create=<br />
<br />
Es llamado justo antes de realizar el proceso de inserción cuando se llama el método save o create en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'. <br />
<br />
=after_update =<br />
<br />
Es llamado justo después de realizar el proceso de actualización cuando se llama el método save o update en un modelo.<br />
<br />
=after_create=<br />
<br />
Es llamado justo después de realizar el proceso de actualización cuando se llama el método save o create en un modelo.<br />
<br />
=after_save =<br />
<br />
Es llamado justo después de realizar el proceso de actualización/inserción cuando se llama el método save, update ó create en un modelo.<br />
<br />
=before_delete=<br />
<br />
Es llamado justo antes de realizar el proceso de borrado cuando se llama el método delete en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'. <br />
<br />
=after_delete =<br />
<br />
Es llamado justo después de realizar el proceso de borrado cuando se llama el método delete en un modelo.</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Callbacks_ActiveRecord&diff=152Callbacks ActiveRecord2009-03-01T15:43:09Z<p>Admin: Página creada con 'El ActiveRecord controla el ciclo de vida de los objetos creados y leídos, supervisando cuando se modifican, se almacenan o se borran. Usando callbacks (o eventos), el ActiveRe...'</p>
<hr />
<div>El ActiveRecord controla el ciclo de vida de los objetos creados y leídos, supervisando cuando se modifican, se almacenan o se borran. Usando callbacks (o eventos), el ActiveRecord nos permite intervenir en esta supervisión. Podemos escribir el código que pueda ser invocado en cualquier evento significativo en la vida de un objeto. Con los callbacks podemos realizar validación compleja, revisar los valores que vienen desde y hacia la base de datos, e incluso evitar que ciertas operaciones finalicen. Un ejemplo de estos callbacks puede ser una validación en productos que evita que productos ‘activos’ sean borrados. <br />
<br />
<source lang=php line><br />
1.class User extends ActiveRecord {<br />
2. <br />
3. public before_delete = “no_borrar_activos”;<br />
4. <br />
5. public function no_borrar_activos(){<br />
6. if($this->estado==’A’){<br />
7. Flash::error(‘No se puede borrar Productos Activos’);<br />
8. return ‘cancel’;<br />
9. }<br />
10. }<br />
11. <br />
12. public function after_delete(){<br />
13. Flash::success("Se borro el usuario $this->nombre");<br />
14. }<br />
15.<br />
16.}<br />
</source><br />
<br />
A continuación otros callbacks que podemos encontrar en ActiveRecord. El orden en el que son presentados es en el que se llaman si están definidos:<br />
<br />
=before_validation=<br />
<br />
Es llamado justo antes de realizar el proceso de validación por parte de Kumbia. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_validation_on_create=<br />
<br />
Es llamado justo antes de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de inserción en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_validation_on_update =<br />
<br />
Es llamado justo antes de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de actualización en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=after_validation_on_create =<br />
<br />
Es llamado justo después de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de inserción en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=after_validation_on_update =<br />
<br />
Es llamado justo después de realizar el proceso de validación por parte de Kumbia, sólo cuando se realiza un proceso de actualización en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=after_validation =<br />
<br />
Es llamado justo después de realizar el proceso de validación por parte de Kumbia. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_save =<br />
<br />
Es llamado justo antes de realizar el proceso de guardar cuando se llama el método save en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_update=<br />
<br />
Es llamado justo antes de realizar el proceso de actualización cuando se llama el método save o update en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'.<br />
<br />
=before_create=<br />
<br />
Es llamado justo antes de realizar el proceso de inserción cuando se llama el método save o create en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'. <br />
<br />
=after_update =<br />
<br />
Es llamado justo después de realizar el proceso de actualización cuando se llama el método save o update en un modelo.<br />
<br />
=after_create=<br />
<br />
Es llamado justo después de realizar el proceso de actualización cuando se llama el método save o create en un modelo.<br />
<br />
=after_save =<br />
<br />
Es llamado justo después de realizar el proceso de actualización/inserción cuando se llama el método save, update ó create en un modelo.<br />
<br />
=before_delete=<br />
<br />
Es llamado justo antes de realizar el proceso de borrado cuando se llama el método delete en un modelo. Se puede cancelar la acción que se esté realizando si este método devuelve la palabra 'cancel'. <br />
<br />
=after_delete =<br />
<br />
Es llamado justo después de realizar el proceso de borrado cuando se llama el método delete en un modelo.</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=151Indice2009-03-01T15:41:16Z<p>Admin: </p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#count<br />
#sum<br />
#count_by_sql<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#average<br />
#maximum<br />
#minimum<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
==[[Callbacks ActiveRecord]]==<br />
<br />
<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Otros_M%C3%A9todos&diff=150Otros Métodos2009-03-01T15:37:53Z<p>Admin: Página creada con '=sql (string $sql) = Esta función nos permite ejecutar sentencias SQL directamente en el motor de base de datos. La idea es que el uso de este método no debería ser común e...'</p>
<hr />
<div>=sql (string $sql) =<br />
<br />
Esta función nos permite ejecutar sentencias SQL directamente en el motor de base de datos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de éste.</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Validaci%C3%B3n&diff=149Validación2009-03-01T15:35:37Z<p>Admin: Página creada con '=validates_presence_of = Cuando este método es llamado desde el constructor de una clase ActiveRecord, obliga a que se valide la presencia de los campos definidos en la lista....'</p>
<hr />
<div>=validates_presence_of =<br />
<br />
Cuando este método es llamado desde el constructor de una clase ActiveRecord, obliga a que se valide la presencia de los campos definidos en la lista. Los campos marcados como not_null en la tabla son automáticamente validados. <br />
<br />
<source lang=php line><br />
<?php<br />
class Clientes extends ActiveRecord {<br />
public function __construct(){<br />
$this->validates_presence_of("cedula");<br />
}<br />
}<br />
7.?><br />
</source><br />
<br />
=validates_length_of =<br />
<br />
Cuando este método es llamado desde el constructor de una clase ActiveRecord, obliga a que se valide la longitud de los campos definidos en la lista. <br />
<br />
El parámetro minimum indica que se debe validar que el valor a insertar o actualizar no sea menor de ese tamaño. El parámetro maximum indica que el valor a insertar/actualizar no puede ser mayor al indicado. El parámetro too_short indica el mensaje personalizado que ActiveRecord mostrará en caso de que falle la validación cuando es menor y too_long cuando es muy largo. <br />
<br />
<source lang=php line><br />
class Clientes extends ActiveRecord {<br />
<br />
public function __construct(){<br />
$this->validates_length_of("nombre", "minumum: 15", "too_short: El nombre debe tener al menos 15 caracteres");<br />
$this->validates_length_of("nombre", "maximum: 40", "too_long: El nombre debe tener maximo 40 caracteres");<br />
$this->validates_length_of("nombre", "in: 15:40", <br />
"too_short: El nombre debe tener al menos 15 caracteres",<br />
"too_long: El nombre debe tener maximo 40 caracteres"<br />
);<br />
}<br />
}<br />
</source><br />
<br />
=validates_numericality_of =<br />
<br />
Valida que ciertos atributos tengan un valor numérico antes de insertar ó actualizar. <br />
<br />
<source lang=php line><br />
<?php<br />
<br />
class Productos extends ActiveRecord {<br />
<br />
public function __construct(){<br />
$this->validates_numericality_of("precio");<br />
}<br />
<br />
}<br />
?><br />
</source><br />
<br />
=validates_email_in =<br />
<br />
Valida que ciertos atributos tengan un formato de e-mail correcto antes de insertar o actualizar. <br />
<br />
<source lang=php line><br />
<?php<br />
class Clientes extends ActiveRecord {<br />
<br />
public function __construct(){<br />
$this->validates_email_in("correo");<br />
}<br />
<br />
}<br />
?><br />
</source><br />
<br />
=validates_uniqueness_of= <br />
<br />
Valida que ciertos atributos tengan un valor único antes de insertar o actualizar. <br />
<br />
<source lang=php line><br />
<?php<br />
class Clientes extends ActiveRecord {<br />
<br />
public function __construct(){<br />
$this->validates_uniqueness_of("cedula");<br />
}<br />
<br />
}<br />
?><br />
</source><br />
<br />
=validates_date_in =<br />
<br />
Valida que ciertos atributos tengan un formato de fecha acorde al indicado en config/config.ini antes de insertar o actualizar. <br />
<br />
<source lang=php line><br />
<?php<br />
class Registro extends ActiveRecord {<br />
<br />
public function __construct(){<br />
$this->validates_date_in("fecha_registro");<br />
}<br />
}<br />
?><br />
</source><br />
<br />
=validates_format_of =<br />
<br />
Valida que el campo tenga determinado formato según una expresión regular antes de insertar o actualizar. <br />
<br />
<source lang=php line><br />
<?php<br />
class Clientes extends ActiveRecord {<br />
<br />
public function __construct(){<br />
$this->validates_format_of("email", "^(+)@((?:[?a?z0?9]+\.)+[a?z]{2,})$");<br />
}<br />
<br />
}<br />
?><br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=148Indice2009-03-01T15:29:42Z<p>Admin: /* Promedios, Máximo y Mínimo */</p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#count<br />
#sum<br />
#count_by_sql<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#average<br />
#maximum<br />
#minimum<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=147Indice2009-03-01T15:29:13Z<p>Admin: /* Promedios, Máximo y Mínimo */</p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#count<br />
#sum<br />
#count_by_sql<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
average<br />
maximum<br />
minimum<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=146Indice2009-03-01T15:28:44Z<p>Admin: /* Conteos y Sumatorios */</p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#count<br />
#sum<br />
#count_by_sql<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#[[Promedios, Máximo y Mínimo#average|average]]<br />
#[[Promedios, Máximo y Mínimo#maximum|maximum]]<br />
#[[Promedios, Máximo y Mínimo#minumum|minimum]]<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Creaci%C3%B3n-Actualizaci%C3%B3n-Borrado_de_Registros&diff=145Creación-Actualización-Borrado de Registros2009-03-01T15:27:41Z<p>Admin: Página creada con '=create = Crea un registro a partir de los valores de los atributos del objeto ActiveRecord. <source lang=php line> $Album = new Album(); $Album->nombre = “Take Off Your Pa...'</p>
<hr />
<div>=create =<br />
<br />
Crea un registro a partir de los valores de los atributos del objeto ActiveRecord. <br />
<br />
<source lang=php line><br />
$Album = new Album();<br />
$Album->nombre = “Take Off Your Pants and Jacket”;<br />
$Album->valor = 40000;<br />
$Album->create();<br />
<br />
$Album = new Album();<br />
$Album->create(<br />
“nombre: Take Off Your Pants and Jacket”,<br />
“valor: 40000”<br />
);<br />
<br />
$Album = new Album();<br />
$Album->create(array(<br />
“nombre” => “Take Off Your Pants and Jacket”,<br />
“valor” => 40000<br />
));<br />
</source><br />
<br />
=update =<br />
<br />
Actualiza un registro a partir de los valores de los atributos del objeto ActiveRecord. <br />
<br />
<source lang=php line><br />
$album = Album->find(12);<br />
$album->nombre = “Take Off Your Pants and Jacket”;<br />
$album->valor = 40000;<br />
$album->update();<br />
</source><br />
<br />
=update_all =<br />
<br />
Actualiza todos los registros de una entidad. El primer parámetro corresponde a los campos separados por comas que se van a actualizar en todos los registros; y el segundo parámetro es la condición, aunque no es obligatoria. También se puede especificar un limit para delimitar el número de registros que debe actualizarse. <br />
<br />
<source lang=php line><br />
$Clientes->update_all("estado='A', fecha='2005-02-02'", "id>100");<br />
$Clientes->update_all("estado='A', fecha='2005-02-02'", "id>100", "limit: 10");<br />
</source><br />
<br />
=save =<br />
<br />
Crea un registro a partir de los valores del objeto ActiveRecord o actualiza el registro si ya existe. <br />
<br />
<source lang=php line><br />
$Album = new Album();<br />
$Album->nombre = “Take Off Your Pants and Jacket”;<br />
$Album->valor = 40000;<br />
$Album->save();<br />
</source><br />
<br />
=create_from_request =<br />
<br />
Crea un registro a partir de los valores que vienen de $_REQUEST que tengan el mismo nombre de los atributos del objeto ActiveRecord. <br />
<br />
<source lang=php line><br />
$Album = new Album();<br />
$Album->create_from_request();<br />
</source><br />
<br />
=save_from_request =<br />
<br />
Crea/Actualiza un registro a partir de los valores que vienen de $_REQUEST que tengan el mismo nombre de los atributos del objeto ActiveRecord. <br />
<br />
<source lang=php line><br />
$Album = new Album();<br />
$Album->save_from_request();<br />
</source><br />
<br />
=delete =<br />
<br />
Elimina registros de la tabla o el registro actual a partir de su id. <br />
<br />
<source lang=php line><br />
$Album->delete(123)<br />
</source><br />
<br />
=delete_all=<br />
<br />
Elimina todos los datos de una relación mediante el objeto ActiveRecord. <br />
<br />
<source lang=php line><br />
$Album->delete_all()<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Promedios,_M%C3%A1ximo_y_M%C3%ADnimo&diff=144Promedios, Máximo y Mínimo2009-03-01T15:23:17Z<p>Admin: Página creada con '=average= Busca el valor promedio para un atributo de alguna entidad, emula la función de agrupamiento average en el lenguaje SQL. <source lang=php line> $promedio = $Product...'</p>
<hr />
<div>=average=<br />
<br />
Busca el valor promedio para un atributo de alguna entidad, emula la función de agrupamiento average en el lenguaje SQL.<br />
<br />
<source lang=php line><br />
$promedio = $Productos->average(“precio”);<br />
$promedio = $Productos->average(“precio”, “conditions: estado = 'A'”);<br />
</source><br />
<br />
=maximum =<br />
<br />
Busca el valor máximo para un atributo de alguna entidad, emula la función de agrupamiento max en el lenguaje SQL.<br />
<br />
<source lang=php line><br />
$maximo = $Productos->maximum(“precio”);<br />
$maximo = $Productos->maximum(“precio”, “conditions: estado = 'A'”);<br />
</source><br />
<br />
=minimum=<br />
<br />
Busca el valor mínimo para un atributo de alguna entidad, emula la función de agrupamiento min en el lenguaje SQL.<br />
<br />
<source lang=php line><br />
$minimo = $Productos->minimum(“precio”);<br />
$minimo = $Productos->minimum(“precio”, “conditions: estado = 'A'”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=143Consultas2009-03-01T15:18:49Z<p>Admin: /* distinct */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
'''Ejemplo'''<br />
<source lang=php line><br />
$unicos = $this->Usuarios->distinct(“estado”) <br />
# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta.<br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso)") as $usuario){<br />
print $Usuario->nombre;<br />
}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso.<br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso) limit 1");<br />
print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“id=’123’”);<br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=142Consultas2009-03-01T15:07:04Z<p>Admin: /* distinct */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
$unicos = $this->Usuarios->distinct(“estado”) <br />
# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta.<br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso)") as $usuario){<br />
print $Usuario->nombre;<br />
}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso.<br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso) limit 1");<br />
print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“id=’123’”);<br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=141Consultas2009-03-01T15:06:25Z<p>Admin: /* find_all_by_sql (string $sql) */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso)") as $usuario){<br />
print $Usuario->nombre;<br />
}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso.<br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso) limit 1");<br />
print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“id=’123’”);<br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=140Consultas2009-03-01T15:05:28Z<p>Admin: /* find_by_sql (string $sql) */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
where codigo not in (select codigo <br />
from ingreso) limit 1");<br />
print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“id=’123’”);<br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=139Consultas2009-03-01T15:04:56Z<p>Admin: /* find_first */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find_first(“id=’123’”);<br />
$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=138Consultas2009-03-01T15:03:53Z<p>Admin: /* find */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
'''Sintaxis'''<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
foreach($Usuarios->find(“conditions: estado=’A’”,“order: fecha desc”) as $usuario){<br />
print $usuario->nombre;<br />
}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=137Consultas2009-03-01T15:02:39Z<p>Admin: /* limit */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=136Consultas2009-03-01T15:02:07Z<p>Admin: /* select_one(string $select_query) */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=135Consultas2009-03-01T15:01:50Z<p>Admin: /* select_one(string $select_query) (static) */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto.<br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=134Consultas2009-03-01T15:01:27Z<p>Admin: /* find_all_by */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
1.ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=133Consultas2009-03-01T15:01:11Z<p>Admin: /* exists */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
1.ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
<br />
$Usuarios->id = 3;<br />
<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
1.$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=132Consultas2009-03-01T15:00:52Z<p>Admin: /* exists */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
1.ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
$Usuarios->id = 3;<br />
if($Usuarios->exists()){<br />
print "Ya existe el id = 3";<br />
}//fin del if<br />
$Usuarios->exists(“nombre='Juan Perez'”)<br />
$Usuarios->exists(2); // Un Usuario con id->2?<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
1.$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=131Consultas2009-03-01T15:00:26Z<p>Admin: /* find_by_*campo* */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
1.ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
1.$Usuarios->id = 3;<br />
2.if($Usuarios->exists()){<br />
3. print "Ya existe el id = 3";<br />
4.}//fin del if<br />
5.$Usuarios->exists(“nombre='Juan Perez'”)<br />
6.$Usuarios->exists(2); // Un Usuario con id->2?<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
1.$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=130Consultas2009-03-01T15:00:10Z<p>Admin: /* find_all_by_*campo* */</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
1.ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
1.$Usuarios->id = 3;<br />
2.if($Usuarios->exists()){<br />
3. print "Ya existe el id = 3";<br />
4.}//fin del if<br />
5.$Usuarios->exists(“nombre='Juan Perez'”)<br />
6.$Usuarios->exists(2); // Un Usuario con id->2?<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
1.$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
1.$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Consultas&diff=129Consultas2009-03-01T14:59:24Z<p>Admin: Página creada con '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: =Consu...'</p>
<hr />
<div>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: <br />
<br />
=Consulta=<br />
<br />
Métodos para hacer consulta de Registros:<br />
<br />
==distinct==<br />
<br />
<source lang=php line><br />
distinct([string $atributo_entidad], [“conditions: …], [“order: …”], [“limit: …“], [“column: …”])<br />
</source><br />
<br />
Este método ejecuta una consulta de distinción única en la entidad, funciona igual que un “select unique campo” viéndolo desde la perspectiva del SQL. El objetivo es devolver un array con los valores únicos del campo especificado como parámetro. <br />
<br />
<source lang=php line><br />
1.$unicos = $this->Usuarios->distinct(“estado”) <br />
2.# array(‘A’, ‘I’, ‘N’)<br />
</source><br />
<br />
Los parámetros conditions, order y limit funcionan idénticamente que en la función find y permiten modificar la forma o los mismos valores de retorno devueltos por ésta. <br />
<br />
==find_all_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un array de objetos de la misma clase con los valores de los registros en estos. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find_all_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso)") as $usuario){<br />
4. print $Usuario->nombre;<br />
5.}<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que los usuarios consultados no pueden estar en la entidad ingreso. <br />
<br />
==find_by_sql (string $sql) ==<br />
<br />
Este método nos permite hacer una consulta por medio de un SQL y el resultado devuelto es un objeto que representa el resultado encontrado. La idea es que el uso de este método no debería ser común en nuestras aplicaciones ya que ActiveRecord se encarga de eliminar el uso del SQL en gran porcentaje, pero hay momentos en que es necesario que seamos más específicos y tengamos que recurrir al uso de este. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$usuario = $Usuarios->find_by_sql("select * from usuarios <br />
2. where codigo not in (select codigo <br />
3. from ingreso) limit 1");<br />
4.print $Usuario->nombre;<br />
</source><br />
<br />
Este ejemplo consultamos todos los usuarios con una sentencia where especial e imprimimos sus nombres. La idea es que el usuario consultado no puede estar en la entidad ingreso.<br />
<br />
==find_first ==<br />
<br />
<source lang=php line><br />
find_first([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find_first” devuelve el primer registro de una entidad o la primera ocurrencia de acuerdo a unos criterios de búsqueda u ordenamiento. Los parámetros son todos opcionales y su orden no es relevante, cuando se invoca sin parámetros devuelve el primer registro insertado en la entidad. Este método es muy flexible y puede ser usado de muchas formas: <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“order: fecha desc”);<br />
</source><br />
<br />
En este ejemplo buscamos el primer registro cuyo estado sea igual a “A” y ordenado descendentemente, el resultado de éste, se carga a la variable $Usuarios e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. <br />
<br />
Con el método find_first podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario.<br />
Kumbia genera una advertencia cuando los criterios de búsqueda para find_first devuelven más de un registro, para esto podemos forzar que se devuelva solamente uno, mediante el parámetro limit, de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“conditions: estado=’A’ ”,“limit: 1”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find_first, así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find_first(“estado=’A’”);<br />
</source><br />
<br />
De esta forma podemos también deducir que estas 2 sentencias arrojarían el mismo resultado: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find_first(“id=’123’”);<br />
2.$this->Usuarios->find_first(123);<br />
</source><br />
<br />
==find ==<br />
<br />
<source lang=php line><br />
find([integer $id], [“conditions: …”], [“order: …”], [“limit: …], [“columns: …”]) <br />
</source><br />
<br />
El método “find” es el principal método de búsqueda de ActiveRecord, devuelve todas los registros de una entidad o el conjunto de ocurrencias de acuerdo a unos criterios de búsqueda. Los parámetros son todos opcionales y su orden no es relevante, incluso pueden ser combinados u omitidos si es necesario. Cuando se invoca sin parámetros devuelve todos los registros en la entidad. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
1.foreach($Usuarios->find(“conditions: estado=’A’ ”,<br />
2. “order: fecha desc”) as $usuario){<br />
3. print $usuario->nombre;<br />
4.}//fin del foreach<br />
</source><br />
<br />
En este ejemplo buscamos todos los registros cuyo estado sea igual a “A” y devuelva éstos ordenados descendentemente, el resultado de este es un array de objetos de la misma clase con los valores de los registros cargados en ellos, en caso de no hayan registros devuelve un array vacío. <br />
<br />
Con el método find podemos buscar un registro en particular a partir de su id de esta forma: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(123);<br />
</source><br />
<br />
Así obtenemos el registro 123 e igualmente devuelve una instancia del mismo objeto ActiveRecord en caso de éxito o false en caso contrario. Como es un solo registro no devuelve un array, sino que los valores de éste se cargan en la misma variable si existe el registro. <br />
<br />
Para limitar el número de registros devueltos, podemos usar el parámetro limit, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find(“conditions: estado=’A’ ”,“limit: 5”);<br />
</source><br />
<br />
Cuando queremos consultar sólo algunos de los atributos de la entidad podemos utilizar el parámetro columns así: <br />
<br />
<source lang=php line><br />
1.$Usuarios->find(“columns: nombre, estado”);<br />
</source><br />
<br />
Cuando especificamos el primer parámetro de tipo string, ActiveRecord asumirá que son las condiciones de búsqueda para find, así: <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->find (“estado=’A’”);<br />
</source><br />
<br />
Se puede utilizar la propiedad count para saber cuántos registros fueron devueltos en la búsqueda.<br />
<br />
==limit==<br />
<br />
ActiveRecord permite realizar búsquedas limitando la cantidad de resultados que serán devueltos, no es un método es un parámetro que recibe las consultas.<br />
<br />
<source lang=php line><br />
1.$this->Preguntas->find('limit:5', 'offset: 1');<br />
</source><br />
<br />
Esta consulta busca todas las Preguntas limitando la cantidad de resultados a devolver en este caso 5.<br />
<br />
==select_one(string $select_query) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos sabiendo que éstas devuelven un solo registro. <br />
<br />
<source lang=php line><br />
1.$this->Usuarios->select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==select_one(string $select_query) (static) ==<br />
<br />
Este método nos permite hacer ciertas consultas como ejecutar funciones en el motor de base de datos, sabiendo que éstas devuelven un solo registro. Este método se puede llamar de forma estática, esto significa que no es necesario que haya una instancia de ActiveRecord para hacer el llamado. <br />
<br />
<source lang=php line><br />
1.ActiveRecord::select_one(“current_time”)<br />
</source><br />
<br />
En el ejemplo queremos saber la hora actual del servidor devuelta desde MySQL así que podemos usar este método para esto. <br />
<br />
==exists ==<br />
<br />
Este método nos permite verificar si el registro existe o no en la base de datos mediante su id o una condición. <br />
<br />
<source lang=php line><br />
1.$Usuarios->id = 3;<br />
2.if($Usuarios->exists()){<br />
3. print "Ya existe el id = 3";<br />
4.}//fin del if<br />
5.$Usuarios->exists(“nombre='Juan Perez'”)<br />
6.$Usuarios->exists(2); // Un Usuario con id->2?<br />
</source><br />
<br />
==find_all_by==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo<br />
<br />
<source lang=php line><br />
1.$resultados = $Productos->find_all_by(“categoria”, “Insumos”);<br />
</source><br />
<br />
==find_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve un solo registro.<br />
<br />
<source lang=php line><br />
1.$resultado = $Productos->find_by_categoria(“Insumos”);<br />
</source><br />
<br />
==find_all_by_*campo*==<br />
<br />
Este método nos permite realizar una búsqueda por algún campo usando el nombre del método como nombre de éste. Devuelve todos los registros que coincidan con la búsqueda. <br />
<br />
<source lang=php line><br />
1.$resultados = $Productos->find_all_by_categoria(“Insumos”);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=MODELOS&diff=128MODELOS2009-03-01T14:50:08Z<p>Admin: /* fetch_array() */</p>
<hr />
<div>= Introducción =<br />
Kumbia posee una doble capa de abstracción de base de datos. La primera mantiene un acceso uniforme que evita reescribir código en caso de cambiar el motor de almacenamiento y la segunda llamada ActiveRecord que está basada en su análogo de Rails; permite mapear las relaciones de la base de datos a objetos. Este mapeo permite el fácil acceso y modificación de las relaciones de la base de datos. Este capítulo explica la creación de estos objetos, la forma en que trabajan y cómo integrarlos con las demás partes de la arquitectura. <br />
<br />
= ¿Por qué usar una capa de Abstracción?=<br />
<br />
Las Bases de datos son relaciones y PHP5/Kumbia es orientado a objetos por lo tanto deberíamos acceder a las BD en forma orientada a objetos. Para esto necesitamos una interfaz que transforme la lógica de objetos a la relacional y viceversa. Este proceso es llamado mapeo objeto-relacional o en inglés ORM (Object-Relational Mapping), y es usado por Kumbia en su arquitectura MVC. <br />
<br />
Se trata de dar a los objetos, acceso a los datos sin dejar de lado las reglas de la lógica de negocios. <br />
<br />
Un beneficio de la capa da abstracción objeto/relacional es que previene un poco el uso de sintaxis específica de un motor de base de datos, ya que automáticamente traduce los llamados a los objetos modelos en instrucciones SQL optimizadas para el motor actual. <br />
<br />
Esto significa que cambiar de un motor de base de datos a otro en la mitad del proyecto es más fácil de lo que se imagina. Pasar de PostgreSQL a MySQL o a Oracle requiere de un cambio de una línea de configuración. <br />
<br />
Una capa de abstracción encapsula la lógica de datos. El resto de la aplicación no necesita saber sobre instrucciones SQL, aunque puede hacerlo si lo requiere. <br />
<br />
Ver las filas como objetos y las tablas como clases tiene otro beneficio. Permiten crear nuevos accesos para nuestras tablas. Por ejemplo si tenemos una clase Clientes y tiene un campo primer nombre, otro segundo nombre y apellidos entonces podemos crear un acceso llamado getNombre así: <br />
<br />
<source lang=php line><br />
public function getNombre(){<br />
return $this->primer_nombre.” “.$this->segundo_nombre.” “.<br />
$this->apellidos;<br />
}<br />
</source><br />
<br />
Kumbia proporciona una serie de clases (ActiveRecord y SessionRecord) que permiten realizar este mapeo y además ejecutar operaciones nativas sobre las relaciones de la base de datos de forma más humana y entendible. <br />
<br />
= Capa de Abstracción Independiente en Kumbia=<br />
<br />
Kumbia posee una primera capa que evita la reescritura del código que accede a bases de datos en caso de cambiar de un motor a otro. Posee todas las funciones básicas para efectuar operaciones sobre tablas, mantener conexiones, ejecutar consultas, etc. sin perder independencia. Esta capa funciona bajo la capa objeto relacional y es ampliamente usada por todo el framework. Debería ser usada en caso de necesitar un acceso de bajo nivel a la base de datos. <br />
<br />
Otra ventaja es que cursores y streams de conexión son encapsulados en objetos evitando escribir código repetitivo. <br />
<br />
= Adaptadores Kumbia =<br />
<br />
Mientras estos adaptadores estén disponibles se puede tener acceso a un motor de base de datos en particular. Actualmente existen: MySQL, PostgreSQL (Beta) y Oracle (beta).<br />
<br />
= Esquema de Acceso a BB.DD en Kumbia =<br />
<br />
= Modelos =<br />
La segunda capa de abstracción de datos utiliza un mapeo objeto/relacional para representar las entidades del modelo de datos en nuestras aplicaciones. Estos modelos son parte integral de la arquitectura MVC (Model View Controller) y están basados en el patrón ActiveRecord. <br />
<br />
==Características de los modelos: ==<br />
Implementan las clases de la capa de negocios: Productos, Clientes, Facturas, Empleados, etc. <br />
Mantienen los datos y su lógica juntos: Un producto tiene una cantidad y se vende sólo si está activo.<br />
Representar relaciones en el modelo: Una Cliente tiene muchas Facturas<br />
<br />
== Acceso Directo a RDBMS ==<br />
<br />
===La Clase DdBase===<br />
<br />
La clase “DbBase” personalizada para cada motor es cargada automáticamente y está disponible globalmente. El valor database.type en config/environment.ini, indica qué driver se debe cargar automáticamente. <br />
<br />
'''Crear una instancia de DdBase'''<br />
<br />
Ya que los parámetros de conexión de la base de datos están definidos en config/environment.ini podemos utilizar esta función para crear el objeto db. <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = DbBase::raw_connect();<br />
?><br />
</source><br />
<br />
===Propiedades de la Clase DB ===<br />
<br />
====$db->Id_Connection====<br />
<br />
Posee una referencia al stream de conexión a la base de datos <br />
<br />
====$db->dbUser====<br />
<br />
Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbPass ====<br />
<br />
Password del Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbHost ====<br />
<br />
Host de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbName ====<br />
<br />
Nombre de la base de datos actual <br />
<br />
====$db->dbPort==== <br />
<br />
Puerto de la base de datos utilizado para crear la conexión <br />
<br />
====$db->lastError ====<br />
<br />
Último error generado por el motor de la base de datos producido en alguna operación SQL. <br />
<br />
====$db->lastResultQuery ====<br />
<br />
Ultima sentencia SQL ejecutada en la base de datos en la instancia <br />
<br />
===Métodos de la Clase DB ===<br />
<br />
====connect()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite crear o reestablecer una conexión con el motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->connect([string $host], [string $user], [string $password], [string $database_name])<br />
</source><br />
<br />
====query()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite enviar sentencias SQL al motor de base de datos. El parámetro debug permite ver un mensaje del SQL que es enviado al motor de base de datos. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->query(string $sql, [bool $debug=false])<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“update clientes set estado = ‘A’”);<br />
$db->close();<br />
?><br />
</source><br />
<br />
====close()==== <br />
<br />
'''Descripción:''' <br />
<br />
Cierra la conexión encapsulada en el objeto <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->close()<br />
</source><br />
<br />
====fetch_array()====<br />
<br />
'''Descripción: '''<br />
<br />
Recorre el cursor ejecutado en la última operación select. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->fetch_array([cursor $cursor], [int $tipo_resultado=DB_BOTH])<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“select codigo, nombre from productos”);<br />
<br />
while($producto = $db->fetch_array()){<br />
print$producto[‘nombre’];<br />
}//fin while<br />
<br />
$db->close();<br />
?><br />
</source><br />
<br />
Los tipos de resultado pueden ser: <br />
<br />
db::DB_ASSOC: Array con índices asociativos de los nombres de los campos.<br />
db::DB_NUM: Array con índices numéricos que indican la posición del campo en el select.<br />
db::DB_BOTH: Array con índices tanto numéricos como asociativos.<br />
<br />
====num_rows()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->num_rows([cursor $cursor]); <br />
</source><br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect;<br />
$db->query(“select codigo, nombre from productos”);<br />
print “Hay ”.$db->num_rows().“ productos “;<br />
$db->close();<br />
?><br />
</source><br />
<br />
====field_name()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el nombre del campo en la posición $number del último select enviado al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->field_name(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====data_seek()====<br />
<br />
'''Descripción:'''<br />
<br />
Se mueve a la posición $number del cursor de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->data_seek(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====affected_rows()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas afectadas en la última instrucción insert, update o delete. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->affected_rows();<br />
</source><br />
<br />
====error()====<br />
<br />
'''Descripción: '''<br />
<br />
Devuelve la cadena descriptiva del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
$db->error();<br />
</source><br />
<br />
====no_error()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número interno del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->no_error();<br />
</source><br />
<br />
====find()====<br />
<br />
'''Descripción:'''<br />
<br />
Ejecuta un Select en el motor con los parámetros enviados y devuelve un Array con los resultados. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->find(string $table, [string $where=”1=1”], [string $fields=”*”], [string $orderBy=”1”]);<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->find(“productos”) as $producto){<br />
print $producto[‘nombre’];<br />
} //fin del foreach <br />
$db->close();<br />
?><br />
</source><br />
<br />
====in_query()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array listo para ser recorrido. <br />
<br />
'''Sintaxis: '''<br />
<source lang=php line><br />
$db->in_query(string $sql, [bool $debug=false], [int $tipo_resultado = db::DB_BOTH]);<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->in_query(“select * from productos”) as $producto){<br />
print $producto[‘nombre’];<br />
}//fin del foreach <br />
$db->close(); <br />
?><br />
</source><br />
<br />
====in_query_assoc()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado asociativo listo para ser recorrido. <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->in_query_assoc(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====in_query_num()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado numérico listo para ser recorrido. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->in_query_num(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====fetch_one()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve la primera fila de un select . Es útil cuando el select devuelve una sola fila <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->fetch_one(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
'''Ejemplo:'''<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$producto = $db->fetch_one(“select * from producto where codigo = 1”);<br />
print $producto[‘nombre’];<br />
$db->close();<br />
?><br />
</source><br />
<br />
====table_exists()====<br />
<br />
Descripción: Devuelve verdadero si la tabla $table existe en la base de datos, falso de lo contrario. <br />
<br />
Sintaxis: <br />
<source lang=php line><br />
$db->table_exists(string $table);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=MODELOS&diff=127MODELOS2009-03-01T14:49:03Z<p>Admin: /* fetch_array() */</p>
<hr />
<div>= Introducción =<br />
Kumbia posee una doble capa de abstracción de base de datos. La primera mantiene un acceso uniforme que evita reescribir código en caso de cambiar el motor de almacenamiento y la segunda llamada ActiveRecord que está basada en su análogo de Rails; permite mapear las relaciones de la base de datos a objetos. Este mapeo permite el fácil acceso y modificación de las relaciones de la base de datos. Este capítulo explica la creación de estos objetos, la forma en que trabajan y cómo integrarlos con las demás partes de la arquitectura. <br />
<br />
= ¿Por qué usar una capa de Abstracción?=<br />
<br />
Las Bases de datos son relaciones y PHP5/Kumbia es orientado a objetos por lo tanto deberíamos acceder a las BD en forma orientada a objetos. Para esto necesitamos una interfaz que transforme la lógica de objetos a la relacional y viceversa. Este proceso es llamado mapeo objeto-relacional o en inglés ORM (Object-Relational Mapping), y es usado por Kumbia en su arquitectura MVC. <br />
<br />
Se trata de dar a los objetos, acceso a los datos sin dejar de lado las reglas de la lógica de negocios. <br />
<br />
Un beneficio de la capa da abstracción objeto/relacional es que previene un poco el uso de sintaxis específica de un motor de base de datos, ya que automáticamente traduce los llamados a los objetos modelos en instrucciones SQL optimizadas para el motor actual. <br />
<br />
Esto significa que cambiar de un motor de base de datos a otro en la mitad del proyecto es más fácil de lo que se imagina. Pasar de PostgreSQL a MySQL o a Oracle requiere de un cambio de una línea de configuración. <br />
<br />
Una capa de abstracción encapsula la lógica de datos. El resto de la aplicación no necesita saber sobre instrucciones SQL, aunque puede hacerlo si lo requiere. <br />
<br />
Ver las filas como objetos y las tablas como clases tiene otro beneficio. Permiten crear nuevos accesos para nuestras tablas. Por ejemplo si tenemos una clase Clientes y tiene un campo primer nombre, otro segundo nombre y apellidos entonces podemos crear un acceso llamado getNombre así: <br />
<br />
<source lang=php line><br />
public function getNombre(){<br />
return $this->primer_nombre.” “.$this->segundo_nombre.” “.<br />
$this->apellidos;<br />
}<br />
</source><br />
<br />
Kumbia proporciona una serie de clases (ActiveRecord y SessionRecord) que permiten realizar este mapeo y además ejecutar operaciones nativas sobre las relaciones de la base de datos de forma más humana y entendible. <br />
<br />
= Capa de Abstracción Independiente en Kumbia=<br />
<br />
Kumbia posee una primera capa que evita la reescritura del código que accede a bases de datos en caso de cambiar de un motor a otro. Posee todas las funciones básicas para efectuar operaciones sobre tablas, mantener conexiones, ejecutar consultas, etc. sin perder independencia. Esta capa funciona bajo la capa objeto relacional y es ampliamente usada por todo el framework. Debería ser usada en caso de necesitar un acceso de bajo nivel a la base de datos. <br />
<br />
Otra ventaja es que cursores y streams de conexión son encapsulados en objetos evitando escribir código repetitivo. <br />
<br />
= Adaptadores Kumbia =<br />
<br />
Mientras estos adaptadores estén disponibles se puede tener acceso a un motor de base de datos en particular. Actualmente existen: MySQL, PostgreSQL (Beta) y Oracle (beta).<br />
<br />
= Esquema de Acceso a BB.DD en Kumbia =<br />
<br />
= Modelos =<br />
La segunda capa de abstracción de datos utiliza un mapeo objeto/relacional para representar las entidades del modelo de datos en nuestras aplicaciones. Estos modelos son parte integral de la arquitectura MVC (Model View Controller) y están basados en el patrón ActiveRecord. <br />
<br />
==Características de los modelos: ==<br />
Implementan las clases de la capa de negocios: Productos, Clientes, Facturas, Empleados, etc. <br />
Mantienen los datos y su lógica juntos: Un producto tiene una cantidad y se vende sólo si está activo.<br />
Representar relaciones en el modelo: Una Cliente tiene muchas Facturas<br />
<br />
== Acceso Directo a RDBMS ==<br />
<br />
===La Clase DdBase===<br />
<br />
La clase “DbBase” personalizada para cada motor es cargada automáticamente y está disponible globalmente. El valor database.type en config/environment.ini, indica qué driver se debe cargar automáticamente. <br />
<br />
'''Crear una instancia de DdBase'''<br />
<br />
Ya que los parámetros de conexión de la base de datos están definidos en config/environment.ini podemos utilizar esta función para crear el objeto db. <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = DbBase::raw_connect();<br />
?><br />
</source><br />
<br />
===Propiedades de la Clase DB ===<br />
<br />
====$db->Id_Connection====<br />
<br />
Posee una referencia al stream de conexión a la base de datos <br />
<br />
====$db->dbUser====<br />
<br />
Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbPass ====<br />
<br />
Password del Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbHost ====<br />
<br />
Host de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbName ====<br />
<br />
Nombre de la base de datos actual <br />
<br />
====$db->dbPort==== <br />
<br />
Puerto de la base de datos utilizado para crear la conexión <br />
<br />
====$db->lastError ====<br />
<br />
Último error generado por el motor de la base de datos producido en alguna operación SQL. <br />
<br />
====$db->lastResultQuery ====<br />
<br />
Ultima sentencia SQL ejecutada en la base de datos en la instancia <br />
<br />
===Métodos de la Clase DB ===<br />
<br />
====connect()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite crear o reestablecer una conexión con el motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->connect([string $host], [string $user], [string $password], [string $database_name])<br />
</source><br />
<br />
====query()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite enviar sentencias SQL al motor de base de datos. El parámetro debug permite ver un mensaje del SQL que es enviado al motor de base de datos. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->query(string $sql, [bool $debug=false])<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“update clientes set estado = ‘A’”);<br />
$db->close();<br />
?><br />
</source><br />
<br />
====close()==== <br />
<br />
'''Descripción:''' <br />
<br />
Cierra la conexión encapsulada en el objeto <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->close()<br />
</source><br />
<br />
====fetch_array()====<br />
<br />
'''Descripción: '''<br />
<br />
Recorre el cursor ejecutado en la última operación select. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->fetch_array([cursor $cursor], [int $tipo_resultado=DB_BOTH])<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“select codigo, nombre from productos”);<br />
<br />
while($producto = $db->fetch_array()){<br />
print$producto[‘nombre’];<br />
}//fin while<br />
<br />
$db->close();<br />
?><br />
<&source><br />
<br />
Los tipos de resultado pueden ser: <br />
<br />
db::DB_ASSOC: Array con índices asociativos de los nombres de los campos.<br />
db::DB_NUM: Array con índices numéricos que indican la posición del campo en el select.<br />
db::DB_BOTH: Array con índices tanto numéricos como asociativos.<br />
<br />
====num_rows()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->num_rows([cursor $cursor]); <br />
</source><br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect;<br />
$db->query(“select codigo, nombre from productos”);<br />
print “Hay ”.$db->num_rows().“ productos “;<br />
$db->close();<br />
?><br />
</source><br />
<br />
====field_name()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el nombre del campo en la posición $number del último select enviado al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->field_name(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====data_seek()====<br />
<br />
'''Descripción:'''<br />
<br />
Se mueve a la posición $number del cursor de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->data_seek(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====affected_rows()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas afectadas en la última instrucción insert, update o delete. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->affected_rows();<br />
</source><br />
<br />
====error()====<br />
<br />
'''Descripción: '''<br />
<br />
Devuelve la cadena descriptiva del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
$db->error();<br />
</source><br />
<br />
====no_error()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número interno del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->no_error();<br />
</source><br />
<br />
====find()====<br />
<br />
'''Descripción:'''<br />
<br />
Ejecuta un Select en el motor con los parámetros enviados y devuelve un Array con los resultados. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->find(string $table, [string $where=”1=1”], [string $fields=”*”], [string $orderBy=”1”]);<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->find(“productos”) as $producto){<br />
print $producto[‘nombre’];<br />
} //fin del foreach <br />
$db->close();<br />
?><br />
</source><br />
<br />
====in_query()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array listo para ser recorrido. <br />
<br />
'''Sintaxis: '''<br />
<source lang=php line><br />
$db->in_query(string $sql, [bool $debug=false], [int $tipo_resultado = db::DB_BOTH]);<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->in_query(“select * from productos”) as $producto){<br />
print $producto[‘nombre’];<br />
}//fin del foreach <br />
$db->close(); <br />
?><br />
</source><br />
<br />
====in_query_assoc()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado asociativo listo para ser recorrido. <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->in_query_assoc(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====in_query_num()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado numérico listo para ser recorrido. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->in_query_num(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====fetch_one()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve la primera fila de un select . Es útil cuando el select devuelve una sola fila <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->fetch_one(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
'''Ejemplo:'''<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$producto = $db->fetch_one(“select * from producto where codigo = 1”);<br />
print $producto[‘nombre’];<br />
$db->close();<br />
?><br />
</source><br />
<br />
====table_exists()====<br />
<br />
Descripción: Devuelve verdadero si la tabla $table existe en la base de datos, falso de lo contrario. <br />
<br />
Sintaxis: <br />
<source lang=php line><br />
$db->table_exists(string $table);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=126Indice2009-03-01T14:44:57Z<p>Admin: /* MODELOS */</p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
##Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#[[Conteos y Sumatorias#count|count]]<br />
#[[Conteos y Sumatorias#sum|sum]]<br />
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]]<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#[[Promedios, Máximo y Mínimo#average|average]]<br />
#[[Promedios, Máximo y Mínimo#maximum|maximum]]<br />
#[[Promedios, Máximo y Mínimo#minumum|minimum]]<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=125Indice2009-03-01T14:43:59Z<p>Admin: /* MODELOS */</p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
#Introducción<br />
#¿Por qué usar una capa de Abstracción?<br />
#Capa de Abstracción Independiente en Kumbia<br />
#Adaptadores Kumbia<br />
#Esquema de Acceso a BB.DD en Kumbia<br />
#Modelos<br />
#Características de los modelos:<br />
##Acceso Directo a RDBMS<br />
###La Clase DdBase<br />
###Propiedades de la Clase DB<br />
####$db->Id_Connection<br />
####$db->dbUser<br />
####$db->dbPass<br />
####$db->dbHost<br />
####$db->dbName<br />
####$db->dbPort<br />
####$db->lastError<br />
####$db->lastResultQuery<br />
###Métodos de la Clase DB<br />
####connect()<br />
####query()<br />
####close()<br />
####fetch_array()<br />
####field_name()<br />
####data_seek()<br />
####affected_rows()<br />
####error()<br />
####no_error()<br />
####find()<br />
####in_query()<br />
####in_query_assoc()<br />
####in_query_num()<br />
####fetch_one()<br />
####table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#[[Conteos y Sumatorias#count|count]]<br />
#[[Conteos y Sumatorias#sum|sum]]<br />
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]]<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#[[Promedios, Máximo y Mínimo#average|average]]<br />
#[[Promedios, Máximo y Mínimo#maximum|maximum]]<br />
#[[Promedios, Máximo y Mínimo#minumum|minimum]]<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=Indice&diff=124Indice2009-03-01T14:40:39Z<p>Admin: /* MODELOS */</p>
<hr />
<div>= [[Agradecimientos|AGRADECIMIENTOS]] =<br />
<br />
= [[Prefacio|PREFACIO]] =<br />
<br />
#[[Prefacio#Sobre_este_libro|Sobre este libro]]<br />
#[[Prefacio#Sobre_Kumbia|Sobre Kumbia]]<br />
#[[Prefacio#Sobre_la_comunidad|Sobre la comunidad]]<br />
#[[Prefacio#Sobre_la_comunidad|Historia de Kumbia]]<br />
#[[Prefacio#Que_aporta_Kumbia|Que aporta Kumbia]]<br />
#[[Prefacio#Porque_usar_kumbia|Porque usar Kumbia]]<br />
#[[Model_Vista_Controlador|Modelo, Vista, Controlador (MVC)]]<br />
<br />
<br />
<br />
<br />
= EMPEZANDO CON KUMBIA PHP FRAMEWORK =<br />
<br />
== [[Instalar_Kumbia|Instalar Kumbia ]] ==<br />
<br />
#Requisitos<br />
#Descargar Kumbia<br />
#Configuración de módulos ( apache, php y bbdd )<br />
##Configurando apache<br />
###3.1.1 ¿Por qué es importante Mod-Rewrite?<br />
##Configuración de PHP<br />
###¿Porque Kumbia utiliza PHP5?<br />
##Configurando BB.DD<br />
###Configuración de MySQL<br />
###Configurando Oracle<br />
#Configurar XAMPP<br />
##Instalando XAMPP bajo Windows<br />
##Instalando XAMPP bajo GNU/Linux<br />
##Instalando XAMPP bajo Debian/Ubuntu Linux<br />
#Configurar Apache2Triad<br />
#Verificar la instalación de Kumbia<br />
#Instalar Kumbia PHP en producción de forma segura<br />
<br />
== [[Estructura de Kumbia]] ==<br />
#Introducción<br />
#Directorios de entorno<br />
#Archivos de entorno<br />
#Resumen<br />
<br />
== [[Características avanzadas]] ==<br />
#¡Parámetros con Nombre!<br />
#Obtener valores en una aplicación Kumbia <br />
#Uso de Paquetes (Namespaces) <br />
#Programación modular <br />
<br />
==[[Primera Aplicación en Kumbia]]==<br />
#Creando una nueva aplicación <br />
#Hola Kumbia <br />
#Kumbia URLS <br />
#Nuestra Primera Acción <br />
#Agregando más Contenido <br />
#Repitiendo la Historia<br />
<br />
<br />
= TRABAJANDO CON KUMBIA PHP FRAMEWORK=<br />
<br />
=[[MODELOS]]=<br />
<br />
* 1 Introducción<br />
* 2 ¿Por qué usar una capa de Abstracción?<br />
* 3 Capa de Abstracción Independiente en Kumbia<br />
* 4 Adaptadores Kumbia<br />
* 5 Esquema de Acceso a BB.DD en Kumbia<br />
* 6 Modelos<br />
o 6.1 Características de los modelos:<br />
o 6.2 Acceso Directo a RDBMS<br />
+ 6.2.1 La Clase DdBase<br />
+ 6.2.2 Propiedades de la Clase DB<br />
# 6.2.2.1 $db->Id_Connection<br />
# 6.2.2.2 $db->dbUser<br />
# 6.2.2.3 $db->dbPass<br />
# 6.2.2.4 $db->dbHost<br />
# 6.2.2.5 $db->dbName<br />
# 6.2.2.6 $db->dbPort<br />
# 6.2.2.7 $db->lastError<br />
# 6.2.2.8 $db->lastResultQuery<br />
+ 6.2.3 Métodos de la Clase DB<br />
# 6.2.3.1 connect()<br />
# 6.2.3.2 query()<br />
# 6.2.3.3 close()<br />
# 6.2.3.4 fetch_array()<br />
# 6.2.3.5 field_name()<br />
# 6.2.3.6 data_seek()<br />
# 6.2.3.7 affected_rows()<br />
# 6.2.3.8 error()<br />
# 6.2.3.9 no_error()<br />
# 6.2.3.10 find()<br />
# 6.2.3.11 in_query()<br />
# 6.2.3.12 in_query_assoc()<br />
# 6.2.3.13 in_query_num()<br />
# 6.2.3.14 fetch_one()<br />
# 6.2.3.15 table_exists()<br />
<br />
=[[ActiveRecord]]=<br />
<br />
#[[ActiveRecord#Ventajas del ActiveRecord|Ventajas del ActiveRecord]]<br />
#[[ActiveRecord#Crear un Modelo en Kumbia PHP Framework|Crear un Modelo en Kumbia PHP Framework]]<br />
#[[ActiveRecord#Columnas y Atributos|Columnas y Atributos]]<br />
#[[ActiveRecord#Llaves Primarias y el uso de IDs|Llaves Primarias y el uso de IDs]]<br />
<br />
==[[CRUD|CRUD: Create, Read, Update, Delete]]==<br />
<br />
#[[CRUD#Creando Registros|Creando Registros]]<br />
#[[CRUD#Consultando Registros|Consultando Registros]]<br />
#[[CRUD#El poderoso Find|El poderoso Find]]<br />
#[[CRUD#Promedio, Contando, Sumando, Mínimo y Máximo|Promedio, Contando, Sumando, Mínimo y Máximo]]<br />
#[[CRUD#Actualizando Registros existentes|Actualizando Registros existentes]]<br />
#[[CRUD#Borrando Registros|Borrando Registros]]<br />
#[[CRUD#Propiedades Soportadas|Propiedades Soportadas]]<br />
<br />
==[[Convenciones en ActiveRecord]]==<br />
<br />
#[[Convenciones en ActiveRecord#Convenciones Generales|Convenciones Generales]]<br />
#[[Convenciones en ActiveRecord#Id|Id]]<br />
#[[Convenciones en ActiveRecord#Campo_id|Campo_id]]<br />
#[[Convenciones en ActiveRecord#Campo_at|Campo_at]]<br />
#[[Convenciones en ActiveRecord#Campo_in|Campo_in]]<br />
<br />
==[[Convenciones para RDBMs]]==<br />
<br />
#[[Convenciones para RDBMs#Convenciones Especiales para PostgreSQL|Convenciones Especiales para PostgreSQL]]<br />
#[[Convenciones para RDBMs#Convenciones Especiales para Oracle|Convenciones Especiales para Oracle]]<br />
<br />
<br />
=[[Active Record API]]=<br />
<br />
==[[Consultas]]==<br />
<br />
#distinct<br />
#find_all_by_sql(string $sql)<br />
#find_by_sql(string $sql)<br />
#find_first<br />
#find<br />
#select_one(string $select query)<br />
#select_one(string $select query) (static)<br />
#exists<br />
#find_all_by<br />
#find_by_*campo*<br />
#find_all_by_*campo*<br />
<br />
==[[Conteos y Sumatorios]]==<br />
<br />
#[[Conteos y Sumatorias#count|count]]<br />
#[[Conteos y Sumatorias#sum|sum]]<br />
#[[Conteos y Sumatorias#count_by_sql|count_by_sql]]<br />
<br />
==[[Promedios, Máximo y Mínimo]]==<br />
<br />
#[[Promedios, Máximo y Mínimo#average|average]]<br />
#[[Promedios, Máximo y Mínimo#maximum|maximum]]<br />
#[[Promedios, Máximo y Mínimo#minumum|minimum]]<br />
<br />
==[[Creación-Actualización-Borrado de Registros]]==<br />
<br />
#[[Creación-Actualización-Borrado de Registros#create|create]]<br />
#[[Creación-Actualización-Borrado de Registros#update|update]]<br />
#[[Creación-Actualización-Borrado de Registros#update_all|update_all]]<br />
#[[Creación-Actualización-Borrado de Registros#save|save]]<br />
#[[Creación-Actualización-Borrado de Registros#create_from_request|create_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#save_from_request|save_from_request]]<br />
#[[Creación-Actualización-Borrado de Registros#delete|delete]]<br />
#[[Creación-Actualización-Borrado de Registros#delete_all|delete_all]]<br />
<br />
==[[Validación]]==<br />
<br />
#validates_presence_of<br />
#validates_length_of<br />
#validates_numericality_of<br />
#validates_email_in<br />
#validates_uniqueness_of<br />
#validates_date_in<br />
#validates_format_of<br />
<br />
==[[Transacciones]]==<br />
<br />
#[[Transacciones#commit()|commit()]]<br />
#[[Transacciones#begin()|begin()]]<br />
#[[Transacciones#rollback()|rollback()]]<br />
<br />
==[[Otros Métodos]]==<br />
<br />
#sql(string $sql)<br />
<br />
<br />
= Application controller =<br />
<br />
= Views y helpers =<br />
<br />
<br />
= Ajax =<br />
<br />
<br />
= Modulos extras =<br />
<br />
<br />
= Generador de formularios =<br />
<br />
<br />
= Ejemplos =<br />
<br />
<br />
= Glosarios =</div>Adminhttps://wiki.kumbiaphp.com/index.php?title=MODELOS&diff=123MODELOS2009-03-01T14:39:04Z<p>Admin: /* La Clase DdBase */</p>
<hr />
<div>= Introducción =<br />
Kumbia posee una doble capa de abstracción de base de datos. La primera mantiene un acceso uniforme que evita reescribir código en caso de cambiar el motor de almacenamiento y la segunda llamada ActiveRecord que está basada en su análogo de Rails; permite mapear las relaciones de la base de datos a objetos. Este mapeo permite el fácil acceso y modificación de las relaciones de la base de datos. Este capítulo explica la creación de estos objetos, la forma en que trabajan y cómo integrarlos con las demás partes de la arquitectura. <br />
<br />
= ¿Por qué usar una capa de Abstracción?=<br />
<br />
Las Bases de datos son relaciones y PHP5/Kumbia es orientado a objetos por lo tanto deberíamos acceder a las BD en forma orientada a objetos. Para esto necesitamos una interfaz que transforme la lógica de objetos a la relacional y viceversa. Este proceso es llamado mapeo objeto-relacional o en inglés ORM (Object-Relational Mapping), y es usado por Kumbia en su arquitectura MVC. <br />
<br />
Se trata de dar a los objetos, acceso a los datos sin dejar de lado las reglas de la lógica de negocios. <br />
<br />
Un beneficio de la capa da abstracción objeto/relacional es que previene un poco el uso de sintaxis específica de un motor de base de datos, ya que automáticamente traduce los llamados a los objetos modelos en instrucciones SQL optimizadas para el motor actual. <br />
<br />
Esto significa que cambiar de un motor de base de datos a otro en la mitad del proyecto es más fácil de lo que se imagina. Pasar de PostgreSQL a MySQL o a Oracle requiere de un cambio de una línea de configuración. <br />
<br />
Una capa de abstracción encapsula la lógica de datos. El resto de la aplicación no necesita saber sobre instrucciones SQL, aunque puede hacerlo si lo requiere. <br />
<br />
Ver las filas como objetos y las tablas como clases tiene otro beneficio. Permiten crear nuevos accesos para nuestras tablas. Por ejemplo si tenemos una clase Clientes y tiene un campo primer nombre, otro segundo nombre y apellidos entonces podemos crear un acceso llamado getNombre así: <br />
<br />
<source lang=php line><br />
public function getNombre(){<br />
return $this->primer_nombre.” “.$this->segundo_nombre.” “.<br />
$this->apellidos;<br />
}<br />
</source><br />
<br />
Kumbia proporciona una serie de clases (ActiveRecord y SessionRecord) que permiten realizar este mapeo y además ejecutar operaciones nativas sobre las relaciones de la base de datos de forma más humana y entendible. <br />
<br />
= Capa de Abstracción Independiente en Kumbia=<br />
<br />
Kumbia posee una primera capa que evita la reescritura del código que accede a bases de datos en caso de cambiar de un motor a otro. Posee todas las funciones básicas para efectuar operaciones sobre tablas, mantener conexiones, ejecutar consultas, etc. sin perder independencia. Esta capa funciona bajo la capa objeto relacional y es ampliamente usada por todo el framework. Debería ser usada en caso de necesitar un acceso de bajo nivel a la base de datos. <br />
<br />
Otra ventaja es que cursores y streams de conexión son encapsulados en objetos evitando escribir código repetitivo. <br />
<br />
= Adaptadores Kumbia =<br />
<br />
Mientras estos adaptadores estén disponibles se puede tener acceso a un motor de base de datos en particular. Actualmente existen: MySQL, PostgreSQL (Beta) y Oracle (beta).<br />
<br />
= Esquema de Acceso a BB.DD en Kumbia =<br />
<br />
= Modelos =<br />
La segunda capa de abstracción de datos utiliza un mapeo objeto/relacional para representar las entidades del modelo de datos en nuestras aplicaciones. Estos modelos son parte integral de la arquitectura MVC (Model View Controller) y están basados en el patrón ActiveRecord. <br />
<br />
==Características de los modelos: ==<br />
Implementan las clases de la capa de negocios: Productos, Clientes, Facturas, Empleados, etc. <br />
Mantienen los datos y su lógica juntos: Un producto tiene una cantidad y se vende sólo si está activo.<br />
Representar relaciones en el modelo: Una Cliente tiene muchas Facturas<br />
<br />
== Acceso Directo a RDBMS ==<br />
<br />
===La Clase DdBase===<br />
<br />
La clase “DbBase” personalizada para cada motor es cargada automáticamente y está disponible globalmente. El valor database.type en config/environment.ini, indica qué driver se debe cargar automáticamente. <br />
<br />
'''Crear una instancia de DdBase'''<br />
<br />
Ya que los parámetros de conexión de la base de datos están definidos en config/environment.ini podemos utilizar esta función para crear el objeto db. <br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = DbBase::raw_connect();<br />
?><br />
</source><br />
<br />
===Propiedades de la Clase DB ===<br />
<br />
====$db->Id_Connection====<br />
<br />
Posee una referencia al stream de conexión a la base de datos <br />
<br />
====$db->dbUser====<br />
<br />
Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbPass ====<br />
<br />
Password del Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbHost ====<br />
<br />
Host de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbName ====<br />
<br />
Nombre de la base de datos actual <br />
<br />
====$db->dbPort==== <br />
<br />
Puerto de la base de datos utilizado para crear la conexión <br />
<br />
====$db->lastError ====<br />
<br />
Último error generado por el motor de la base de datos producido en alguna operación SQL. <br />
<br />
====$db->lastResultQuery ====<br />
<br />
Ultima sentencia SQL ejecutada en la base de datos en la instancia <br />
<br />
===Métodos de la Clase DB ===<br />
<br />
====connect()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite crear o reestablecer una conexión con el motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->connect([string $host], [string $user], [string $password], [string $database_name])<br />
</source><br />
<br />
====query()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite enviar sentencias SQL al motor de base de datos. El parámetro debug permite ver un mensaje del SQL que es enviado al motor de base de datos. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->query(string $sql, [bool $debug=false])<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“update clientes set estado = ‘A’”);<br />
$db->close();<br />
?><br />
</source><br />
<br />
====close()==== <br />
<br />
'''Descripción:''' <br />
<br />
Cierra la conexión encapsulada en el objeto <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->close()<br />
</source><br />
<br />
====fetch_array()====<br />
<br />
'''Descripción: '''<br />
<br />
Recorre el cursor ejecutado en la última operación select. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->fetch_array([cursor $cursor], [int $tipo_resultado=DB_BOTH])<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“select codigo, nombre from productos”);<br />
<br />
while($producto = $db->fetch_array()){<br />
print$producto[‘nombre’];<br />
}//fin while<br />
<br />
$db->close();<br />
?><br />
<br />
Los tipos de resultado pueden ser: <br />
<br />
db::DB_ASSOC: Array con índices asociativos de los nombres de los campos.<br />
db::DB_NUM: Array con índices numéricos que indican la posición del campo en el select.<br />
db::DB_BOTH: Array con índices tanto numéricos como asociativos.<br />
<br />
====num_rows()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->num_rows([cursor $cursor]); <br />
</source><br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect;<br />
$db->query(“select codigo, nombre from productos”);<br />
print “Hay ”.$db->num_rows().“ productos “;<br />
$db->close();<br />
?><br />
</source><br />
<br />
====field_name()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el nombre del campo en la posición $number del último select enviado al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->field_name(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====data_seek()====<br />
<br />
'''Descripción:'''<br />
<br />
Se mueve a la posición $number del cursor de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->data_seek(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====affected_rows()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas afectadas en la última instrucción insert, update o delete. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->affected_rows();<br />
</source><br />
<br />
====error()====<br />
<br />
'''Descripción: '''<br />
<br />
Devuelve la cadena descriptiva del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
$db->error();<br />
</source><br />
<br />
====no_error()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número interno del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->no_error();<br />
</source><br />
<br />
====find()====<br />
<br />
'''Descripción:'''<br />
<br />
Ejecuta un Select en el motor con los parámetros enviados y devuelve un Array con los resultados. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->find(string $table, [string $where=”1=1”], [string $fields=”*”], [string $orderBy=”1”]);<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->find(“productos”) as $producto){<br />
print $producto[‘nombre’];<br />
} //fin del foreach <br />
$db->close();<br />
?><br />
</source><br />
<br />
====in_query()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array listo para ser recorrido. <br />
<br />
'''Sintaxis: '''<br />
<source lang=php line><br />
$db->in_query(string $sql, [bool $debug=false], [int $tipo_resultado = db::DB_BOTH]);<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->in_query(“select * from productos”) as $producto){<br />
print $producto[‘nombre’];<br />
}//fin del foreach <br />
$db->close(); <br />
?><br />
</source><br />
<br />
====in_query_assoc()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado asociativo listo para ser recorrido. <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->in_query_assoc(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====in_query_num()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado numérico listo para ser recorrido. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->in_query_num(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====fetch_one()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve la primera fila de un select . Es útil cuando el select devuelve una sola fila <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->fetch_one(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
'''Ejemplo:'''<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$producto = $db->fetch_one(“select * from producto where codigo = 1”);<br />
print $producto[‘nombre’];<br />
$db->close();<br />
?><br />
</source><br />
<br />
====table_exists()====<br />
<br />
Descripción: Devuelve verdadero si la tabla $table existe en la base de datos, falso de lo contrario. <br />
<br />
Sintaxis: <br />
<source lang=php line><br />
$db->table_exists(string $table);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=MODELOS&diff=122MODELOS2009-03-01T14:38:16Z<p>Admin: /* connect() */</p>
<hr />
<div>= Introducción =<br />
Kumbia posee una doble capa de abstracción de base de datos. La primera mantiene un acceso uniforme que evita reescribir código en caso de cambiar el motor de almacenamiento y la segunda llamada ActiveRecord que está basada en su análogo de Rails; permite mapear las relaciones de la base de datos a objetos. Este mapeo permite el fácil acceso y modificación de las relaciones de la base de datos. Este capítulo explica la creación de estos objetos, la forma en que trabajan y cómo integrarlos con las demás partes de la arquitectura. <br />
<br />
= ¿Por qué usar una capa de Abstracción?=<br />
<br />
Las Bases de datos son relaciones y PHP5/Kumbia es orientado a objetos por lo tanto deberíamos acceder a las BD en forma orientada a objetos. Para esto necesitamos una interfaz que transforme la lógica de objetos a la relacional y viceversa. Este proceso es llamado mapeo objeto-relacional o en inglés ORM (Object-Relational Mapping), y es usado por Kumbia en su arquitectura MVC. <br />
<br />
Se trata de dar a los objetos, acceso a los datos sin dejar de lado las reglas de la lógica de negocios. <br />
<br />
Un beneficio de la capa da abstracción objeto/relacional es que previene un poco el uso de sintaxis específica de un motor de base de datos, ya que automáticamente traduce los llamados a los objetos modelos en instrucciones SQL optimizadas para el motor actual. <br />
<br />
Esto significa que cambiar de un motor de base de datos a otro en la mitad del proyecto es más fácil de lo que se imagina. Pasar de PostgreSQL a MySQL o a Oracle requiere de un cambio de una línea de configuración. <br />
<br />
Una capa de abstracción encapsula la lógica de datos. El resto de la aplicación no necesita saber sobre instrucciones SQL, aunque puede hacerlo si lo requiere. <br />
<br />
Ver las filas como objetos y las tablas como clases tiene otro beneficio. Permiten crear nuevos accesos para nuestras tablas. Por ejemplo si tenemos una clase Clientes y tiene un campo primer nombre, otro segundo nombre y apellidos entonces podemos crear un acceso llamado getNombre así: <br />
<br />
<source lang=php line><br />
public function getNombre(){<br />
return $this->primer_nombre.” “.$this->segundo_nombre.” “.<br />
$this->apellidos;<br />
}<br />
</source><br />
<br />
Kumbia proporciona una serie de clases (ActiveRecord y SessionRecord) que permiten realizar este mapeo y además ejecutar operaciones nativas sobre las relaciones de la base de datos de forma más humana y entendible. <br />
<br />
= Capa de Abstracción Independiente en Kumbia=<br />
<br />
Kumbia posee una primera capa que evita la reescritura del código que accede a bases de datos en caso de cambiar de un motor a otro. Posee todas las funciones básicas para efectuar operaciones sobre tablas, mantener conexiones, ejecutar consultas, etc. sin perder independencia. Esta capa funciona bajo la capa objeto relacional y es ampliamente usada por todo el framework. Debería ser usada en caso de necesitar un acceso de bajo nivel a la base de datos. <br />
<br />
Otra ventaja es que cursores y streams de conexión son encapsulados en objetos evitando escribir código repetitivo. <br />
<br />
= Adaptadores Kumbia =<br />
<br />
Mientras estos adaptadores estén disponibles se puede tener acceso a un motor de base de datos en particular. Actualmente existen: MySQL, PostgreSQL (Beta) y Oracle (beta).<br />
<br />
= Esquema de Acceso a BB.DD en Kumbia =<br />
<br />
= Modelos =<br />
La segunda capa de abstracción de datos utiliza un mapeo objeto/relacional para representar las entidades del modelo de datos en nuestras aplicaciones. Estos modelos son parte integral de la arquitectura MVC (Model View Controller) y están basados en el patrón ActiveRecord. <br />
<br />
==Características de los modelos: ==<br />
Implementan las clases de la capa de negocios: Productos, Clientes, Facturas, Empleados, etc. <br />
Mantienen los datos y su lógica juntos: Un producto tiene una cantidad y se vende sólo si está activo.<br />
Representar relaciones en el modelo: Una Cliente tiene muchas Facturas<br />
<br />
== Acceso Directo a RDBMS ==<br />
<br />
===La Clase DdBase===<br />
<br />
La clase “DbBase” personalizada para cada motor es cargada automáticamente y está disponible globalmente. El valor database.type en config/environment.ini, indica qué driver se debe cargar automáticamente. <br />
<br />
Crear una instancia de DdBase<br />
<br />
Ya que los parámetros de conexión de la base de datos están definidos en config/environment.ini podemos utilizar esta función para crear el objeto db. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
<?php<br />
$db = DbBase::raw_connect();<br />
?><br />
</source><br />
<br />
===Propiedades de la Clase DB ===<br />
<br />
====$db->Id_Connection====<br />
<br />
Posee una referencia al stream de conexión a la base de datos <br />
<br />
====$db->dbUser====<br />
<br />
Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbPass ====<br />
<br />
Password del Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbHost ====<br />
<br />
Host de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbName ====<br />
<br />
Nombre de la base de datos actual <br />
<br />
====$db->dbPort==== <br />
<br />
Puerto de la base de datos utilizado para crear la conexión <br />
<br />
====$db->lastError ====<br />
<br />
Último error generado por el motor de la base de datos producido en alguna operación SQL. <br />
<br />
====$db->lastResultQuery ====<br />
<br />
Ultima sentencia SQL ejecutada en la base de datos en la instancia <br />
<br />
===Métodos de la Clase DB ===<br />
<br />
====connect()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite crear o reestablecer una conexión con el motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->connect([string $host], [string $user], [string $password], [string $database_name])<br />
</source><br />
<br />
====query()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite enviar sentencias SQL al motor de base de datos. El parámetro debug permite ver un mensaje del SQL que es enviado al motor de base de datos. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->query(string $sql, [bool $debug=false])<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“update clientes set estado = ‘A’”);<br />
$db->close();<br />
?><br />
</source><br />
<br />
====close()==== <br />
<br />
'''Descripción:''' <br />
<br />
Cierra la conexión encapsulada en el objeto <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->close()<br />
</source><br />
<br />
====fetch_array()====<br />
<br />
'''Descripción: '''<br />
<br />
Recorre el cursor ejecutado en la última operación select. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->fetch_array([cursor $cursor], [int $tipo_resultado=DB_BOTH])<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“select codigo, nombre from productos”);<br />
<br />
while($producto = $db->fetch_array()){<br />
print$producto[‘nombre’];<br />
}//fin while<br />
<br />
$db->close();<br />
?><br />
<br />
Los tipos de resultado pueden ser: <br />
<br />
db::DB_ASSOC: Array con índices asociativos de los nombres de los campos.<br />
db::DB_NUM: Array con índices numéricos que indican la posición del campo en el select.<br />
db::DB_BOTH: Array con índices tanto numéricos como asociativos.<br />
<br />
====num_rows()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->num_rows([cursor $cursor]); <br />
</source><br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect;<br />
$db->query(“select codigo, nombre from productos”);<br />
print “Hay ”.$db->num_rows().“ productos “;<br />
$db->close();<br />
?><br />
</source><br />
<br />
====field_name()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el nombre del campo en la posición $number del último select enviado al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->field_name(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====data_seek()====<br />
<br />
'''Descripción:'''<br />
<br />
Se mueve a la posición $number del cursor de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->data_seek(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====affected_rows()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas afectadas en la última instrucción insert, update o delete. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->affected_rows();<br />
</source><br />
<br />
====error()====<br />
<br />
'''Descripción: '''<br />
<br />
Devuelve la cadena descriptiva del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
$db->error();<br />
</source><br />
<br />
====no_error()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número interno del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->no_error();<br />
</source><br />
<br />
====find()====<br />
<br />
'''Descripción:'''<br />
<br />
Ejecuta un Select en el motor con los parámetros enviados y devuelve un Array con los resultados. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->find(string $table, [string $where=”1=1”], [string $fields=”*”], [string $orderBy=”1”]);<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->find(“productos”) as $producto){<br />
print $producto[‘nombre’];<br />
} //fin del foreach <br />
$db->close();<br />
?><br />
</source><br />
<br />
====in_query()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array listo para ser recorrido. <br />
<br />
'''Sintaxis: '''<br />
<source lang=php line><br />
$db->in_query(string $sql, [bool $debug=false], [int $tipo_resultado = db::DB_BOTH]);<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->in_query(“select * from productos”) as $producto){<br />
print $producto[‘nombre’];<br />
}//fin del foreach <br />
$db->close(); <br />
?><br />
</source><br />
<br />
====in_query_assoc()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado asociativo listo para ser recorrido. <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->in_query_assoc(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====in_query_num()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado numérico listo para ser recorrido. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->in_query_num(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====fetch_one()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve la primera fila de un select . Es útil cuando el select devuelve una sola fila <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->fetch_one(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
'''Ejemplo:'''<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$producto = $db->fetch_one(“select * from producto where codigo = 1”);<br />
print $producto[‘nombre’];<br />
$db->close();<br />
?><br />
</source><br />
<br />
====table_exists()====<br />
<br />
Descripción: Devuelve verdadero si la tabla $table existe en la base de datos, falso de lo contrario. <br />
<br />
Sintaxis: <br />
<source lang=php line><br />
$db->table_exists(string $table);<br />
</source></div>Adminhttps://wiki.kumbiaphp.com/index.php?title=MODELOS&diff=121MODELOS2009-03-01T14:34:53Z<p>Admin: /* query() */</p>
<hr />
<div>= Introducción =<br />
Kumbia posee una doble capa de abstracción de base de datos. La primera mantiene un acceso uniforme que evita reescribir código en caso de cambiar el motor de almacenamiento y la segunda llamada ActiveRecord que está basada en su análogo de Rails; permite mapear las relaciones de la base de datos a objetos. Este mapeo permite el fácil acceso y modificación de las relaciones de la base de datos. Este capítulo explica la creación de estos objetos, la forma en que trabajan y cómo integrarlos con las demás partes de la arquitectura. <br />
<br />
= ¿Por qué usar una capa de Abstracción?=<br />
<br />
Las Bases de datos son relaciones y PHP5/Kumbia es orientado a objetos por lo tanto deberíamos acceder a las BD en forma orientada a objetos. Para esto necesitamos una interfaz que transforme la lógica de objetos a la relacional y viceversa. Este proceso es llamado mapeo objeto-relacional o en inglés ORM (Object-Relational Mapping), y es usado por Kumbia en su arquitectura MVC. <br />
<br />
Se trata de dar a los objetos, acceso a los datos sin dejar de lado las reglas de la lógica de negocios. <br />
<br />
Un beneficio de la capa da abstracción objeto/relacional es que previene un poco el uso de sintaxis específica de un motor de base de datos, ya que automáticamente traduce los llamados a los objetos modelos en instrucciones SQL optimizadas para el motor actual. <br />
<br />
Esto significa que cambiar de un motor de base de datos a otro en la mitad del proyecto es más fácil de lo que se imagina. Pasar de PostgreSQL a MySQL o a Oracle requiere de un cambio de una línea de configuración. <br />
<br />
Una capa de abstracción encapsula la lógica de datos. El resto de la aplicación no necesita saber sobre instrucciones SQL, aunque puede hacerlo si lo requiere. <br />
<br />
Ver las filas como objetos y las tablas como clases tiene otro beneficio. Permiten crear nuevos accesos para nuestras tablas. Por ejemplo si tenemos una clase Clientes y tiene un campo primer nombre, otro segundo nombre y apellidos entonces podemos crear un acceso llamado getNombre así: <br />
<br />
<source lang=php line><br />
public function getNombre(){<br />
return $this->primer_nombre.” “.$this->segundo_nombre.” “.<br />
$this->apellidos;<br />
}<br />
</source><br />
<br />
Kumbia proporciona una serie de clases (ActiveRecord y SessionRecord) que permiten realizar este mapeo y además ejecutar operaciones nativas sobre las relaciones de la base de datos de forma más humana y entendible. <br />
<br />
= Capa de Abstracción Independiente en Kumbia=<br />
<br />
Kumbia posee una primera capa que evita la reescritura del código que accede a bases de datos en caso de cambiar de un motor a otro. Posee todas las funciones básicas para efectuar operaciones sobre tablas, mantener conexiones, ejecutar consultas, etc. sin perder independencia. Esta capa funciona bajo la capa objeto relacional y es ampliamente usada por todo el framework. Debería ser usada en caso de necesitar un acceso de bajo nivel a la base de datos. <br />
<br />
Otra ventaja es que cursores y streams de conexión son encapsulados en objetos evitando escribir código repetitivo. <br />
<br />
= Adaptadores Kumbia =<br />
<br />
Mientras estos adaptadores estén disponibles se puede tener acceso a un motor de base de datos en particular. Actualmente existen: MySQL, PostgreSQL (Beta) y Oracle (beta).<br />
<br />
= Esquema de Acceso a BB.DD en Kumbia =<br />
<br />
= Modelos =<br />
La segunda capa de abstracción de datos utiliza un mapeo objeto/relacional para representar las entidades del modelo de datos en nuestras aplicaciones. Estos modelos son parte integral de la arquitectura MVC (Model View Controller) y están basados en el patrón ActiveRecord. <br />
<br />
==Características de los modelos: ==<br />
Implementan las clases de la capa de negocios: Productos, Clientes, Facturas, Empleados, etc. <br />
Mantienen los datos y su lógica juntos: Un producto tiene una cantidad y se vende sólo si está activo.<br />
Representar relaciones en el modelo: Una Cliente tiene muchas Facturas<br />
<br />
== Acceso Directo a RDBMS ==<br />
<br />
===La Clase DdBase===<br />
<br />
La clase “DbBase” personalizada para cada motor es cargada automáticamente y está disponible globalmente. El valor database.type en config/environment.ini, indica qué driver se debe cargar automáticamente. <br />
<br />
Crear una instancia de DdBase<br />
<br />
Ya que los parámetros de conexión de la base de datos están definidos en config/environment.ini podemos utilizar esta función para crear el objeto db. <br />
<br />
Ejemplo: <br />
<br />
<source lang=php line><br />
<?php<br />
$db = DbBase::raw_connect();<br />
?><br />
</source><br />
<br />
===Propiedades de la Clase DB ===<br />
<br />
====$db->Id_Connection====<br />
<br />
Posee una referencia al stream de conexión a la base de datos <br />
<br />
====$db->dbUser====<br />
<br />
Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbPass ====<br />
<br />
Password del Usuario de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbHost ====<br />
<br />
Host de la base de datos utilizado para crear la conexión <br />
<br />
====$db->dbName ====<br />
<br />
Nombre de la base de datos actual <br />
<br />
====$db->dbPort==== <br />
<br />
Puerto de la base de datos utilizado para crear la conexión <br />
<br />
====$db->lastError ====<br />
<br />
Último error generado por el motor de la base de datos producido en alguna operación SQL. <br />
<br />
====$db->lastResultQuery ====<br />
<br />
Ultima sentencia SQL ejecutada en la base de datos en la instancia <br />
<br />
===Métodos de la Clase DB ===<br />
<br />
====connect()====<br />
<br />
Descripción: Permite crear o reestablecer una conexión con el motor de base de datos. <br />
<br />
Sintaxis: <br />
<br />
$db->connect([string $host], [string $user], [string $password], [string $database_name])<br />
<br />
====query()====<br />
<br />
'''Descripción:'''<br />
<br />
Permite enviar sentencias SQL al motor de base de datos. El parámetro debug permite ver un mensaje del SQL que es enviado al motor de base de datos. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->query(string $sql, [bool $debug=false])<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“update clientes set estado = ‘A’”);<br />
$db->close();<br />
?><br />
</source><br />
<br />
====close()==== <br />
<br />
'''Descripción:''' <br />
<br />
Cierra la conexión encapsulada en el objeto <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->close()<br />
</source><br />
<br />
====fetch_array()====<br />
<br />
'''Descripción: '''<br />
<br />
Recorre el cursor ejecutado en la última operación select. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->fetch_array([cursor $cursor], [int $tipo_resultado=DB_BOTH])<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$db->query(“select codigo, nombre from productos”);<br />
<br />
while($producto = $db->fetch_array()){<br />
print$producto[‘nombre’];<br />
}//fin while<br />
<br />
$db->close();<br />
?><br />
<br />
Los tipos de resultado pueden ser: <br />
<br />
db::DB_ASSOC: Array con índices asociativos de los nombres de los campos.<br />
db::DB_NUM: Array con índices numéricos que indican la posición del campo en el select.<br />
db::DB_BOTH: Array con índices tanto numéricos como asociativos.<br />
<br />
====num_rows()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->num_rows([cursor $cursor]); <br />
</source><br />
<br />
'''Ejemplo:'''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect;<br />
$db->query(“select codigo, nombre from productos”);<br />
print “Hay ”.$db->num_rows().“ productos “;<br />
$db->close();<br />
?><br />
</source><br />
<br />
====field_name()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el nombre del campo en la posición $number del último select enviado al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->field_name(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====data_seek()====<br />
<br />
'''Descripción:'''<br />
<br />
Se mueve a la posición $number del cursor de la última instrucción select enviada al motor de base de datos. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->data_seek(int $number, [cursor $cursor]);<br />
</source><br />
<br />
====affected_rows()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número de filas afectadas en la última instrucción insert, update o delete. <br />
<br />
'''Sintaxis:''' <br />
<br />
<source lang=php line><br />
$db->affected_rows();<br />
</source><br />
<br />
====error()====<br />
<br />
'''Descripción: '''<br />
<br />
Devuelve la cadena descriptiva del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis:'''<br />
<source lang=php line><br />
$db->error();<br />
</source><br />
<br />
====no_error()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el número interno del último error generado por base de datos producido por la última instrucción SQL. <br />
<br />
'''Sintaxis: '''<br />
<br />
<source lang=php line><br />
$db->no_error();<br />
</source><br />
<br />
====find()====<br />
<br />
'''Descripción:'''<br />
<br />
Ejecuta un Select en el motor con los parámetros enviados y devuelve un Array con los resultados. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->find(string $table, [string $where=”1=1”], [string $fields=”*”], [string $orderBy=”1”]);<br />
</source><br />
<br />
'''Ejemplo: '''<br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->find(“productos”) as $producto){<br />
print $producto[‘nombre’];<br />
} //fin del foreach <br />
$db->close();<br />
?><br />
</source><br />
<br />
====in_query()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array listo para ser recorrido. <br />
<br />
'''Sintaxis: '''<br />
<source lang=php line><br />
$db->in_query(string $sql, [bool $debug=false], [int $tipo_resultado = db::DB_BOTH]);<br />
</source><br />
<br />
'''Ejemplo:''' <br />
<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
foreach($db->in_query(“select * from productos”) as $producto){<br />
print $producto[‘nombre’];<br />
}//fin del foreach <br />
$db->close(); <br />
?><br />
</source><br />
<br />
====in_query_assoc()==== <br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado asociativo listo para ser recorrido. <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->in_query_assoc(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====in_query_num()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve el resultado de una instrucción SQL en un array con indexado numérico listo para ser recorrido. <br />
<br />
'''Sintaxis:'''<br />
<br />
<source lang=php line><br />
$db->in_query_num(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
====fetch_one()====<br />
<br />
'''Descripción:'''<br />
<br />
Devuelve la primera fila de un select . Es útil cuando el select devuelve una sola fila <br />
<br />
'''Sintaxis:''' <br />
<source lang=php line><br />
$db->fetch_one(string $sql, [bool $debug=false]);<br />
</source><br />
<br />
'''Ejemplo:'''<br />
<source lang=php line><br />
<?php<br />
$db = db::raw_connect();<br />
$producto = $db->fetch_one(“select * from producto where codigo = 1”);<br />
print $producto[‘nombre’];<br />
$db->close();<br />
?><br />
</source><br />
<br />
====table_exists()====<br />
<br />
Descripción: Devuelve verdadero si la tabla $table existe en la base de datos, falso de lo contrario. <br />
<br />
Sintaxis: <br />
<source lang=php line><br />
$db->table_exists(string $table);<br />
</source></div>Admin