Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/06/2017, 10:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Mostrar resultado o mensaje

Bandoler sengun entiendo esta parte esta dentro de un método de tu clase
Código PHP:
Ver original
  1. if ($stm->rowCount() > 0) {  
  2.     while ($fila = $stm->fetch(PDO::FETCH_ASSOC))
  3.     {
  4.         $salida[] = new ClienteVO($fila['codigo'], $fila['nombre']);
  5.     }
  6. } else {  
  7.     $salida = FALSE;
  8. }
  9. return $salida;
De ser así, no necesitas el if else, y puedes regresar false o un arreglo vació
Código PHP:
Ver original
  1. if ($stm->rowCount() > 0) {
  2.     return false; // or return [];
  3. }
  4.  
  5. while ($fila = $stm->fetch(PDO::FETCH_ASSOC)) {
  6.     $salida[] = new ClienteVO($fila['codigo'], $fila['nombre']);
  7. }
  8.  
  9. return $salida;
En el if, debed de usar el not(!) ya que un arreglo vacío el if lo toma como false así que esto
Código PHP:
Ver original
  1. $tpl = new Plantilla();
  2. if($listas)
  3. {
  4.     $tpl->assign('lista', $listas);
  5.     $tpl->assign('NoRegistros', "");        
  6. } else {
  7.     $tpl->assign('lista', "");
  8.     $tpl->assign('NoRegistros', "No hay Registros");
  9. }
  10. $tpl->display("mostrar.tpl.php");
debe ser algo como
Código PHP:
Ver original
  1. $tpl = new Plantilla();
  2. if(!$listas)
  3. {
  4.     $tpl->assign('lista', $listas);
  5.     $tpl->assign('NoRegistros', "");        
  6. } else {
  7.     $tpl->assign('lista', "");
  8.     $tpl->assign('NoRegistros', "No hay Registros");
  9. }
  10. $tpl->display("mostrar.tpl.php");
Si no quieres usar la negación entonces usa empty pero no es necesario.
La parte que tienes en el if de listas lo puedes hacer un poco mas legible usando un helper y puedes hacer algo como esto.
Código PHP:
Ver original
  1. function view($template, Array $data) {
  2.    
  3.     $tpl = new Plantilla();
  4.    
  5.     foreach($data as $key => $value) {
  6.         $tpl->assign($key, $value);
  7.     }
  8.    
  9.     $tpl->display($template);
  10.    
  11. }
Y esto lo puedes incluir en código original
Código PHP:
Ver original
  1. if(!$listas)
  2. {
  3.     view('mostrar.tpl.php', ['listas' => $listas, 'NoRegistros' => '']);
  4. } else {
  5.     view('mostrar.tpl.php', ['listas' => '', 'NoRegistros' => 'No hay Registros']);
  6. }
si ves como se simplifica ?
Otras mejoras que puedes hacer es usar la opción PDO::FETCH_CLASS de fetch y dejar que PDO llene tus objetos y evitas hacer la asignación que tienes en el while.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.