Edición de «Como Programar Consultas Paginadas en KUMBIAPHP»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
 
== Ejemplo probado del uso de paginate en Beta 2 ==
 
== Ejemplo probado del uso de paginate en Beta 2 ==
  
'''Controlador: consultarpaises_controller.php'''
+
Controlador: consultarpaises_controller.php
<source lang='php'>
+
 
 
<?php
 
<?php
 
Load::models('pais');
 
Load::models('pais');
class ConsultarPaisesController extends AppController {
+
class ConsultarPaisesController extends ApplicationController {
 
public function index($page=1)
 
public function index($page=1)
 
{
 
{
Línea 13: Línea 13:
 
}
 
}
 
?>
 
?>
</source>
 
  
''' Modelo: pais.php '''
+
Modelo: pais.php
  
<source lang='sql'>
 
-- DDL para PostgreSQL
 
CREATE TABLE Pais
 
(
 
  Id serial,
 
  PRIMARY KEY (Id),
 
  Codigo char(2) UNIQUE NOT NULL,
 
  Nombre character varying(100) NOT NULL,
 
  Activ boolean DEFAULT true
 
);
 
</source>
 
<source lang='php'>
 
 
<?php
 
<?php
 
class Pais extends ActiveRecord {
 
class Pais extends ActiveRecord {
Línea 41: Línea 28:
 
}
 
}
 
?>
 
?>
</source>
 
  
''' Vista: index.phtml de views/consultarpaises '''
+
Vista: index.phtml de views/consultarpaises
  
<source lang='php'>
 
 
<div class="content">
 
<div class="content">
 
<?php echo View::content();?>
 
<?php echo View::content();?>
 
<h3>Paises</h3>
 
<h3>Paises</h3>
 
<ul>
 
<ul>
<?php foreach ($listPaises->items as $item):?>
+
    <?php foreach ($listPaises->items as $item):?>
 
<li>
 
<li>
 
<?php if ($item->id == 48) echo Html::link("consultardepartamentospais/index/1/$item->id", $item->codigo); else echo Html::link("consultarciudadespais/index/1/$item->id", $item->codigo);?> - <?php echo $item->nombre?>
 
<?php if ($item->id == 48) echo Html::link("consultardepartamentospais/index/1/$item->id", $item->codigo); else echo Html::link("consultarciudadespais/index/1/$item->id", $item->codigo);?> - <?php echo $item->nombre?>
Línea 59: Línea 44:
 
<?php if($listPaises->next) echo Html::linkAction("index/$listPaises->next/", 'Próximo >>');?>
 
<?php if($listPaises->next) echo Html::linkAction("index/$listPaises->next/", 'Próximo >>');?>
 
</div>
 
</div>
</source>
 
  
 
Como se nota con Html::link("consultarciudadespais/index/1/$item->id"?> permite el despliegue de las ciudades del respectivo pais entonces:
 
Como se nota con Html::link("consultarciudadespais/index/1/$item->id"?> permite el despliegue de las ciudades del respectivo pais entonces:
  
''' Controlador: consultarciudadespais_controller.php '''
+
Controlador: consultarciudadespais_controller.php
  
<source lang='php'>
 
 
<?php
 
<?php
 
Load::models('ciudad', 'pais');
 
Load::models('ciudad', 'pais');
class ConsultarCiudadesPaisController extends AppController {
+
class ConsultarCiudadesPaisController extends ApplicationController {
 
public function index($page=1, $paisid=48)
 
public function index($page=1, $paisid=48)
 
{
 
{
Línea 78: Línea 61:
 
}
 
}
 
?>
 
?>
</source>
 
  
La función index tiene el parámetro $paisid con default 48 que en mi caso es el id de Colombia
+
La funcion index tiene el parametro $paisid con default 48 que en mi caso es el id de Colombia
  
''' Modelo: ciudad.php '''
+
Modelo: ciudad.php
  
<source lang='sql'>
 
-- DDL para PostgreSQL
 
CREATE TABLE Ciudad
 
(
 
  Id bigserial,
 
  PRIMARY KEY (Id),
 
  Nombre character varying(100) NOT NULL,
 
  Pais_Id integer REFERENCES Pais(Id) NOT NULL,
 
  Departamento_Id integer REFERENCES Departamento(Id),
 
  Codigo char(3) DEFAULT '  ',
 
  CodigoNumerico integer,
 
  Activ boolean DEFAULT true
 
);
 
</source>
 
<source lang='php'>
 
 
<?php
 
<?php
 
class Ciudad extends ActiveRecord {
 
class Ciudad extends ActiveRecord {
Línea 111: Línea 78:
 
}
 
}
 
?>
 
?>
</source>
 
  
 
Al invocar paginate se debe incluir el parametro "pais_id = $paisid" con comillas dobles para que resuelva $paisid
 
Al invocar paginate se debe incluir el parametro "pais_id = $paisid" con comillas dobles para que resuelva $paisid
  
''' Vista: index.phtml de views/consultarciudadespais '''
+
Vista: index.phtml de views/consultarciudadespais
  
<source lang='php'>
 
 
<div class="content">
 
<div class="content">
 
<?php echo View::content();?>
 
<?php echo View::content();?>
 
<h3>Ciudades de <?php echo $nombredelpais;?></h3>
 
<h3>Ciudades de <?php echo $nombredelpais;?></h3>
 
<ul>
 
<ul>
<?php foreach ($listCiudadesPais->items as $item):?>
+
    <?php foreach ($listCiudadesPais->items as $item):?>
 
<li>
 
<li>
 
<?php if ($item->codigo == "  ") echo "ZZZ"; else echo $item->codigo;?> - <?php echo $item->nombre;?>
 
<?php if ($item->codigo == "  ") echo "ZZZ"; else echo $item->codigo;?> - <?php echo $item->nombre;?>
Línea 131: Línea 96:
 
<?php if($listCiudadesPais->next) echo Html::linkAction("index/$listCiudadesPais->next/$item->pais_id/", 'Próximo >>');?>
 
<?php if($listCiudadesPais->next) echo Html::linkAction("index/$listCiudadesPais->next/$item->pais_id/", 'Próximo >>');?>
 
</div>
 
</div>
</source>
 
  
 
Ahora para Colombia el Html::link("consultardepartamentospais/index/1/$item->id"?> permite el despliegue de los departamentos del respectivo pais entonces:
 
Ahora para Colombia el Html::link("consultardepartamentospais/index/1/$item->id"?> permite el despliegue de los departamentos del respectivo pais entonces:
  
''' Controlador: consultardepartamentospais_controller.php '''
+
Controlador: consultardepartamentospais_controller.php
  
<source lang='php'>
 
 
<?php
 
<?php
 
Load::models('departamento', 'pais');
 
Load::models('departamento', 'pais');
Línea 150: Línea 113:
 
}
 
}
 
?>
 
?>
</source>
 
 
  
''' Modelo: departamento.php '''
+
Modelo: departamento.php
  
<source lang='sql'>
 
-- DDL para PostgreSQL
 
CREATE TABLE Departamento
 
(
 
  Id serial,
 
  PRIMARY KEY (Id),
 
  Nombre character varying(100) NOT NULL,
 
  Pais_Id integer REFERENCES Pais(Id) NOT NULL,
 
  CodigoNumerico integer,
 
  Activ boolean DEFAULT true
 
);
 
</source>
 
<source lang='php'>
 
 
<?php
 
<?php
 
class Departamento extends ActiveRecord {
 
class Departamento extends ActiveRecord {
Línea 184: Línea 132:
 
}
 
}
 
?>
 
?>
</source>
 
  
''' Vista: index.phtml de views/consultardepartamentospais '''
+
Vista: index.phtml de views/consultardepartamentospais
  
<source lang='php'>
 
 
<div class="content">
 
<div class="content">
 
<?php echo View::content();?>
 
<?php echo View::content();?>
 
<h3>Departamentos de <?php echo $nombredelpais;?></h3>
 
<h3>Departamentos de <?php echo $nombredelpais;?></h3>
 
<ul>
 
<ul>
<?php foreach ($listDepartamentosPais->items as $item):?>
+
    <?php foreach ($listDepartamentosPais->items as $item):?>
 
<li>
 
<li>
 
<?php echo Html::link("consultarciudadesdepartamento/index/1/$item->id", str_pad($item->codigonumerico, 2, "0", STR_PAD_LEFT));?> - <?php echo $item->nombre;?>
 
<?php echo Html::link("consultarciudadesdepartamento/index/1/$item->id", str_pad($item->codigonumerico, 2, "0", STR_PAD_LEFT));?> - <?php echo $item->nombre;?>
Línea 202: Línea 148:
 
<?php if($listDepartamentosPais->next) echo Html::linkAction("index/$listDepartamentosPais->next/$item->pais_id/", 'Próximo >>');?>
 
<?php if($listDepartamentosPais->next) echo Html::linkAction("index/$listDepartamentosPais->next/$item->pais_id/", 'Próximo >>');?>
 
</div>
 
</div>
</source>
 
  
 
Como se nota Html::link("consultarciudadesdepartamento/index/1/$item->id"?> permite el despliegue de los departamentos del respectivo pais entonces:
 
Como se nota Html::link("consultarciudadesdepartamento/index/1/$item->id"?> permite el despliegue de los departamentos del respectivo pais entonces:
  
''' Controlador: consultarciudadesdepartamento_controller.php '''
+
Controlador: consultarciudadesdepartamento_controller.php
  
<source lang='php'>
 
 
<?php
 
<?php
 
Load::models('ciudad', 'departamento', 'pais');
 
Load::models('ciudad', 'departamento', 'pais');
class ConsultarCiudadesDepartamentoController extends AppController {
+
class ConsultarCiudadesDepartamentoController extends ApplicationController {
 
public function index($page=1, $departamentoid=15)
 
public function index($page=1, $departamentoid=15)
 
{
 
{
Línea 224: Línea 168:
 
}
 
}
 
?>
 
?>
</source>
 
 
La función index tiene el parámetro $departamentoid con default 15 que en mi caso es el id de Cundinamarca
 
  
''' Vista: index.phtml de views/consultarciudadesdepartamento '''
+
Vista: index.phtml de views/consultarciudadesdepartamento
  
<source lang='php'>
 
 
<div class="content">
 
<div class="content">
 
<?php echo View::content();?>
 
<?php echo View::content();?>
 
<h3>Ciudades de <?php echo $nombredeldepartamento;?> - <?php echo $nombredelpais;?></h3>
 
<h3>Ciudades de <?php echo $nombredeldepartamento;?> - <?php echo $nombredelpais;?></h3>
 
<ul>
 
<ul>
<?php foreach ($listCiudadesDepartamento->items as $item):?>
+
    <?php foreach ($listCiudadesDepartamento->items as $item):?>
 
<li>
 
<li>
 
<?php if ($item->codigo == "  ") echo "ZZZ"; else echo $item->codigo;?> - <?php echo str_pad($item->codigonumerico, 3, "0", STR_PAD_LEFT);?> - <?php echo $item->nombre;?>
 
<?php if ($item->codigo == "  ") echo "ZZZ"; else echo $item->codigo;?> - <?php echo str_pad($item->codigonumerico, 3, "0", STR_PAD_LEFT);?> - <?php echo $item->nombre;?>
Línea 244: Línea 184:
 
<?php if($listCiudadesDepartamento->next) echo Html::linkAction("index/$listCiudadesDepartamento->next/$item->departamento_id/", 'Próximo >>');?>
 
<?php if($listCiudadesDepartamento->next) echo Html::linkAction("index/$listCiudadesDepartamento->next/$item->departamento_id/", 'Próximo >>');?>
 
</div>
 
</div>
</source>
 
 
  
[[Categoría:Tutoriales KumbiaPHP]]
 
 
--[[Usuario:Cbeltranv|Cbeltranv]] 02:56 2 nov 2010 (UTC)
 
--[[Usuario:Cbeltranv|Cbeltranv]] 02:56 2 nov 2010 (UTC)

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)