Hola chicos he creado un ambiente de pruebas.
Tengo esta tabla:
Código PHP:
CREATE TABLE IF NOT EXISTS `prueba` (
`codigo` int(10) unsigned NOT NULL,
`nombres` varchar(30) DEFAULT NULL,
`fecha` date DEFAULT NULL,
`cantidad` int(10) unsigned DEFAULT NULL,
`cargo` decimal(8,2) DEFAULT NULL,
`abono` decimal(8,2) DEFAULT NULL,
`foto` varchar(20) DEFAULT NULL,
PRIMARY KEY (`codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Y tengo su correspodiente Value Object:
Código PHP:
class PruebaVO {
public $codigoVO;
public $nombresVO;
public $fechaVO;
public $cantidadVO;
public $cargoVO;
public $abonoVO;
public $fotoVO;
public function __construct($cod, $nom, $fec, $can, $car, $abo, $fot){
$this->codigoVO = $cod;
$this->nombresVO = $nom;
$this->fechaVO = $fec;
$this->cantidadVO = $can;
$this->cargoVO = $car;
$this->abonoVO = $abo;
$this->fotoVO = $fot;
}
function __destruct(){
}
}
Tengo entendido que por cada Tabla de la base de datos se tiene una clase VO y una DAO. Cierto?
En mi DAO tengo un método listar:
Código PHP:
function listar(){
$query = "SELECT codigo, nombres, DATE_FORMAT(fecha,'%d/%m/%Y') as fechaLO, cantidad, cargo, abono, foto FROM prueba";
***{POR AQUI VA LA CONEXION A LA B.D.}***
$lista = array();
while($fila=$recordSet->FetchRow()) {
$lista[] = new PruebaVO($fila['codigo'], $fila['nombres'], $fila['fechaLO'], $fila['cantidad'], $fila['cargo'], $fila['abono'], $fila['foto']);
}
return $lista;
}
Y en mi plantilla utilizo Smarty para visualizar:
Código PHP:
{section name=i loop=$lista}
<tr>
<td>{$lista[i]->codigoVO}</td>
<td>{$lista[i]->nombresVO}</td>
<td>{$lista[i]->fechaVO}</td>
<td>{$lista[i]->cantidadVO}</td>
<td>{$lista[i]->cargoVO}</td>
<td>{$lista[i]->abonoVO}</td>
<td>{$lista[i]->fotoVO}</td>
</tr>
{/section}
Y mi controlador que tiene lo siguiente:
Código PHP:
$dao = new PruebaDAO();
$lista = $dao->listar();
$tpl = new Plantilla();
$tpl->assign("lista", $lista);
$tpl->display('prueba.tpl.php');
Todo funciona y estoy usando MVC con php/mysql/smarty
Mi pregunta es la siguiente:
Qué pasa si tengo un método que solo necesita visualizar de mi tabla los campos: codigo, cargo y abono?
Espero sugerencias y comentarios.