San Sebastian - Av. Mateo Pumacahua N°105
tips laravel

Los mejores trucos de Laravel (algunos ocultos) que te permitirán mejorar tus habilidades como programador


1. Controladores Invocables

A partir de la versión 5.6.28, si quieres crear un controlador con solo una acción, puedes usar el método __invoke() e incluso crear un controlador “invokable”.

Image for post
Route::get(‘user/{id}’, ‘ShowProfile’);
php artisan make:controller ShowProfile --invokable

2. Manejo del método ‘Where’ en Eloquent

En Eloquent, puedes utilizar funciones de fecha con el método ‘where’ como whereDay() , whereMonth() , whereYear() , whereDate() y whereTime() .

Algunos ejemplos:

Image for post

3. Uso de la variable $loop en un ‘foreach’

Dentro del bucle foreach(), es posible chequear si la entrada en el ciclo es la primera o la última solo utilizando la variable $loop->first(para el primero) o $loop->last (para el último).

Ejemplo:

Image for post

4. Uso del ‘orderBy’ en las relaciones de Eloquent

Puedes especificar orderBy() directamente en tus relaciones de Eloquent.

Ejemplo:

Image for post

5. Llaves foráneas sin signo ‘Unsigned Integer’

Para el uso de llaves foráneas en tu migración, en vez de utilizar integer() , usa el tipounsignedInteger() o integer()->unsigned() , de otra forma obtendrás un error SQL.

Ejemplo:

Image for post

6. Comprobar que el archivo de la vista existe

Es posible chequear que el archivo de la vista exista antes de realizar la carga de él.

Ejemplo:

Image for post

Incluso puedes cargar un arreglo ‘array’ de vistas y solo se cargará realmente la primera existente.

Ejemplo:

Image for post

7. Columnas sin ‘Timestamp’

Si tu base de datos no contiene los campos created_at y updated_at , tu puedes especificar en tu modelo que no sea utilizada dicha opción por Eloquent a través de la propiedad $timestamps = false;

Ejemplo:

Image for post

8. Migración con campo ‘timezone’

En una migración no solo es posible utilizar timestamps() sino que también es factible incluir la variable de huso horario (o zona de tiempo ‘timezone’) a través de timestampsTz() .

Ejemplo:

Image for post

9. Subdominios con comodín ‘wildcard’

Puedes crear un grupo de rutas con un nombre de subdominio dinámico y pasarle valores a cada ruta.

Ejemplo:

Image for post

10. Utilizar @auth en Blade

Es posible utilizar la directiva @auth en Blade para comprobar si el usuario está autenticado en tu aplicación.

La forma típica de hacerlo es:

Image for post

La vía más corta y eficiente es:

Image for post

11. Utilizar ‘all()’ en un modelo de Eloquent

Cuando realices un llamado a un modelo de Eloquent como User::all() es posible especificar qué columnas requieres que retorne.

Ejemplo:

Image for post

12. Dónde encontrar las rutas de ‘Auth::routes()’

Si deseas saber qué hay detrás de Auth::routes() hay que observar el archivo /vendor/laravel/framework/src/illuminate/Routing/Router.php (no lo modifiques!) si deseas alterar alguna ruta, debes copiara en tu archivo de rutas (ejemplo: routes/web.php )

En la versión de Laravel 5.7 se agregan las rutas para la verificación del correo.

El archivo Router.php posee la siguiente información:


13. Uso del ‘dd’ en forma más conveniente

Si utilizas comúnmente la opción dd($resultado) tu puedes incluir la opción ->dd() como un método directo al final de la sentencia de Eloquent, o incluso un cualquier colección.

Por ejemplo:

Image for post

14. Uso de ‘map’ en el resultado de las consultas

Después de haber realizado una consulta a través de Eloquent, es posible modificar el resultado de las filas a través de la función map() en la colección.

Por ejemplo:

Image for post

15. Uso del logging con parámetros

Es posible utilizar la función Log::info() o la versión del mensaje reducida info() con la adición de parámetros adicionales. Esto permite tener algún contexto respecto de lo que está pasando.

Ejemplo:

Image for post

16. Cambiar el nombre de la columna en Eloquent

En la construcción de cualquier consulta a través de Eloquent, es posible especificar as para que retorne el nombre que requieras de la columna, tal como se realiza en una consulta plana de SQL.

Ejemplo:

Image for post

17. Eloquent, primer registro o fallo ‘firstOrFail()’

Adicionalmente al método findOrFail() existe un método en Eloquent llamado firstOrFail() que retorna el primer registro encontrado en la consulta o simplemente un error 404 de página no encontrada.

Ejemplo:

Image for post

18. Uso del ‘hasMany’ para crear múltiples registros

Si tu utilizas la relación hasMany(), es posible también utilizar la opción saveMany() para almacenar múltiples entradas ‘hijos’ para los objetos ‘padres’, todo en una sola sentencia.

Ejemplo:

Image for post

19. Mensaje personalizado en la validación

Es posible personalizar el mensaje de error de validación por campo, regla y lenguaje. Solo necesitas crear el archivo en la ruta: resources/lang/xx/validation.php con la estructura apropiada del arreglo.

La carpeta xx especificada en la ruta, en el caso del lenguaje español es la siguiente:/es/

Ejemplo:

Image for post

20. Previsualizar emails

Si utilizas la función ‘Mailable’ para el envío de correos electrónicos es posible poder previsualizar el resultado del email sin necesidad de enviarlo, directamente en tu navegador, solo se requiere retornarla como resultado en una ruta.

Ejemplo:

Image for post

21. Validación de imágenes

Cuando requieras validar una imagen que se ha subido, es posible especificar las dimensiones que se requiere.

Ejemplo:

Image for post

22. Borrado suave ‘soft-deletes’ : restauración múltiple

Cuando utilizas el borrado suave o ‘soft-deletes’, tu puedes restaurar múltiples filas en una sola y única sentencia.

Ejemplo:

Image for post

23. Uso del ‘has()’ en profundidad en Eloquent

Es posible utilizar la función de consulta de Eloquent has() para el manejo de relaciones entre modelos, incluso con dos capas de profundidad.

Ejemplo:

Image for post

24. Incrementos y decrementos en la BD

Si tu quieres incrementar valores de alguna tabla en tu base de datos, solo puedes utilizar la función increment() . Si tu quieres incrementar, no solo en 1, solo es necesario agregar el número a incrementar, como por ejemplo 50.

Ejemplo:

Image for post

25. Grupo de rutas, dentro de un grupo

En las rutas es factible crear un grupo de éstas dentro de un grupo, incluso asignar un determinado middleware solo a algunas rutas en el grupo ‘padre’.

Ejemplo:

Image for post

26. Ayuda en comando Artisan

Es posible comprobar las opciones del comando ‘artisan’ ejecutando alguno de los comandos con la bandera --help .

Por ejemplo escribe php artisan make:model --help en tu terminal y podrás ver todas las opciones que dicho comando tiene.

Ejemplo:

Image for post

27. Establecer un usuario registrado con ‘Observers’

Es posible utilizar make:observer y completar con el método creating() para configurar automáticamente el campo user_id para el usuario que ha iniciado actualmente la sesión.

Ejemplo:

Image for post

28. ‘Has Many’, pero cuántos exactamente?

En las relaciones de Eloquent hasMany() es posible filtrar los registros que tengan una cantidad determinada de registros hijos.

Ejemplo:

Image for post

29. Parámetros en comandos de Artisan

Cuando creas comandos de Artisan, yo puedes obtener información a través de preguntas de diversas vías: $this->confirm() , $this->anticipate() , $this->choice() .

Ejemplo:

Image for post

30. Uso de ‘map’ para el resultado de una consulta en Eloquent

Después de obtener el resultado de una consulta con Eloquent, es posible modificar las filas utilizando la función map() en la colección.

Ejemplo:

Image for post

Si te gustó esta publicación, puedes compartirla en tus redes sociales ;)


Etiquetas

Recientes Blogs

Culpa maxime vel eligendi. Libero cumque quis ea et ut. Libero cumque quis ea et ut.