Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Laravel / Controla excepciones con abort_if() y abort_unless()

Controla excepciones con abort_if() y abort_unless()

Por jc mouse martes, agosto 13, 2024

Laravel tiene varias formas de tratar con las excepciones de nuetros proyectos, uno de ellos es el helper «abort()», esta función generar una excepción HTTP el cual sera procesada por el exception handler, es decir, si por ejemplo, si quisieramos restringir el acceso a ciertos métodos solo a usuarios con nivel de administrador, pódriamos usar el siguiente pedazo de código:

    public function foo(){
        if ( !Auth::user()->isAdmin() ) {
            abort(403, 'Acceso prohibido');
        }
      
        ...
        ..
        .        
        
    }

Y si el usuario en cuestión no tiene el nivel de administrador, se produce una excepción 403 y el codigo que hay debajo, ya no se ejecuta. Por pantalla veremos algo como esto:

Si bien el código de arriba no tiene nada de malo, algunos puristas de la programación no les gusta utilizar tantas lineas de codigo. No hay problema, para eso Laravel cuenta con dos helpers mas, estos son abort_if() y abort_unless().

abort_if()

Esta función genera una excepción HTTP si la expresión boolenana contenida se evalua como TRUE. Basicamente lo mismo que abort, pero en una sola linea. Es decir:

    public function foo(){

        abort_if( !Auth::user()->isAdmin() , 403, 'ACCESO DENEGADO'); 
        
        ...
        ..
        .
    }

abort_unless()

Similar a abort_if(), con la diferencia de que la expresión booleana generara una excepción si esta se evalua como FALSE.

    public function foo(){

        abort_unless( Auth::user()->isAdmin(), 403, 'ACCESO RECONTRA PROHIBIDO' );
        
        ...
        ..
        .
    }

Para terminar decir que cualquiera de estos helpers, acepta un cuarto parametro que es el headers, o sea:

abort_unless( Auth::user()->isAdmin() , 403, 'ACCESO RECONTRA PROHIBIDO', ['statusText' => 'No estas logueado papay'] );

enjoy!!!

Tags

Artículos similares

Más de 400 impresionantes plantillas Readme para perfiles de GitHub

Un archivo README.md es un archivo de texto escrito en el lenguaje de marcado Markdown, este se encuentra en la raíz de[...]

Impresión de reportes con JasperReport + YAPA

En un post anterior [Guardar reporte PDF directamente con Jasperreports] vimos una manera de imprimir reportes directame[...]

Microsoft Windows XP finalmente a muerto

Windows XP fue lanzado oficialmente el 25 de octubre de 2001, han pasado ya 17 años y 7 meses convirtiendo así a XP uno[...]

Crea tu personaje de Snoopy & Charlie Brown

The Peanuts Movie fue la película animada de  Snoopy & Charlie Brown personajes principales de la serie de tiras cóm[...]

GraphADT: Clases para trabajar con grafos en java

GraphADT es una proyecto alojado en github escrito en java que te permite trabajar con grafos, a la fecha de escribir es[...]

PixilArt: Arte con pixeles

pixilart no es solo una herramienta online sino una comunidad de diseñadores a quienes les encanta el arte hecha con «pi[...]