Tratamiento de errores

edited junio 2008 in Principiantes
Hola, he hecho una consulta a una Base de datos y quisiera poner un aviso si no se encuentra lo que se esta buscando.

Lo que he hecho es en el controlador, ver la cantidad de usuarios que devuelve find(). (devuelve un array y he hecho un count() )

y despues en la vista he hecho un IF, si es 0 pues pongo el Flash::error

Aunque lo suyo sería hacer ese tratamiento en el controlador no???

Como sería?


Un saludo

Gracias

Comentarios

  • Si, la vista es solo para html y no mezclar tanto código php, solo para imprimir resultados.
    <?php echo $var; ?>

    Si no me equivoco, en el controlador vasta con hacer:
    if( !$this-&gt;Usuarios-&gt;find()) {
        Flash&#58;&#58;warning(&quot;No hay usuarios para mostrar&quot;);
    }
    

    Y en la vista:
    &lt;?php content(); ?&gt;
    

    Si no funciona bien hacelo con el count() pero en el controlador.
  • edited 8:32
    eso lo habia probao.

    el problema es que la vista usa una variable del controlador, la que contiene el find() y si find no devuelve nada, la variable no contiene ningun valor y da error (en realidad muestra un Notice)
  • si es asi deberias hacer un if en tu vista donde condiciones si esa variable contiene informacion lo muestras sino simplemente un msj de error o aviso al usuario...
  • Un Notice, es porque deberia estar error_reporting = E_ALL & ~E_NOTICE en el php.ini

    El manual dice:
    error_reporting = E_ALL &amp; ~E_NOTICE
    Kumbia no está escrito respetando el estándar E_STRICT, por lo que en algunas configuraciones podrían aparecer mensajes inesperados o molestos de parte de PHP&#46;
    
  • edited 8:32
    si es asi deberias hacer un if en tu vista donde condiciones si esa variable contiene informacion lo muestras sino simplemente un msj de error o aviso al usuario...

    Eso es lo que tengo hecho ahora mismo. Puso este post, por si habia alguna forma mas correcta y "elegante".

    Un saludo
  • la forma mas elegante que te recomiendo es que cree dos layout uno que tiene todo lo que muestra con lo que devuelve tu consulta y otra que sea lo contrario, es decir cuando no se encontraron registro, teniendo esto puede tener una condicion en tu controller en caso que tengas resultado despues de tu consulta muestras el partial segun sea el caso me explico...?
  • edited 8:32
    Ok, Sí te he entendido.


    Gracias!!
Sign In or Register to comment.