Base de datos: Paginación – Documentación de Laravel 6

Introducción

En otros frameworks, la paginación puede ser muy difícil. El paginador de Laravel está integrado con el constructor de consultas y el ORM Eloquent, proporcionando una conveniente y fácil manera de usar paginación de resultados de forma predeterminada. El HTML generado por el paginador es compatible con el Framework de CSS Bootstrap.

Uso básico

Ver post

Base de datos: constructor de consultas (query builder) – Documentación de Laravel 6

Introducción

El constructor de consultas (query builder) de Base de datos de Laravel, proporciona una interfaz fluida y conveniente para la creación y ejecución de consultas de bases de datos. Puede ser usado para ejecutar las principales operaciones de bases de datos en tu aplicación y funciona en todos los sistemas de bases de datos soportados.

El constructor de consultas de Laravel usa enlazamiento de parámetros PDO para proteger tu aplicación contra ataques de inyección SQL. No hay necesidad de limpiar cadenas que están siendo pasadas como enlaces.

PDO no admite el enlace de nombres de columna (binding). Por lo tanto, nunca debes permitir que la entrada de usuario dicte los nombres de columna a los que hacen referencia tus consultas, incluidas las columnas «ordenar por», etc. Si debes permitir que el usuario seleccione ciertas columnas para consultar, valida siempre los nombres de las columnas con una lista blanca de columnas permitidas.

Obteniendo los resultados

Obteniendo todas las filas de una tabla

Puedes usar el método table de la clase facade DB para empezar una consulta. El método table devuelve una instancia para construir consultas fáciles de entender para la tabla dada, permitiendo que encadenes más restricciones dentro de la consulta y recibas finalmente los resultados usando el método get:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;

class UserController extends Controller
{
    /**
    * Show a list of all of the application's users.
    *
    * @return Response
    */
    public function index()
    {
        $users = DB::table('users')->get();

        return view('user.index', ['users' => $users]);
    }
}

El método get devuelve una colección de la clase Illuminate\Support\Collection que contiene los resultados, donde cada resultado es una instancia del objeto StdClass de PHP. Puedes acceder al valor de cada columna accediendo a la columna como una propiedad del objeto:

foreach ($users as $user) {
    echo $user->name;
}

Obteniendo una sola fila / columna de una tabla

Si solamente necesitas recuperar una sola fila de la tabla de la base de datos, puedes usar el método first. Este método devolverá un solo objeto StdClass:

$user = DB::table('users')->where('name', 'John')->first();

echo $user->name;

Si no necesitas una fila completa, puedes extraer un solo valor de un registro usando el método value. Este método devolverá directamente el valor de la columna:

$email = DB::table('users')->where('name', 'John')->value('email');

Para obtener una sola fila por su valor de columna id, usa el método find:

$user = DB::table('users')->find(3);

Obteniendo una lista de valores de columna

Si prefieres obtener una Colección que contenga los valores de una sola columna, puedes usar el método pluck. En el siguiente ejemplo, obtendremos una colección de títulos de rol:

$titles = DB::table('roles')->pluck('title');

foreach ($titles as $title) {
    echo $title;
}

También puedes especificar una columna clave personalizada para la colección retornada:

$roles = DB::table('roles')->pluck('title', 'name');

foreach ($roles as $name => $title) {
    echo $title;
}

Ver post

Bases de datos: primeros pasos – Documentación de Laravel 6

Introducción

Laravel hace que la interacción con las bases de datos sea extremadamente fácil a través de una variedad de backends de bases de datos usando SQL nativo, el constructor de consultas query builder y el ORM Eloquent. Actualmente, Laravel soporta cuatro bases de datos:

Ver post

Programación de tareas – Documentación de Laravel 6

Introducción

En el pasado, es posible que hayas generado una entrada Cron para cada tarea que necesitabas programar en tu servidor. Sin embargo, esto puede convertirse rápidamente en un sufrimiento, dado que tu programación de tareas no está en el control de versiones y debes hacer SSH a tu servidor para agregar entradas Cron adicionales.

El programador de comandos de Laravel te permite definir tu programación de comandos de forma fluída y expresiva dentro de Laravel. Al usar el programador, una sola entrada Cron es necesaria en tu servidor. Tu programación de tareas es definida en el método schedule del archivo app/Console/Kernel.php. Para ayudarte a comenzar, un ejemplo sencillo está definido dentro del método.

Ver post

Colas de Trabajo – Documentación de Laravel 6

Introducción

Laravel ahora ofrece Horizon, un hermoso tablero y sistema de configuración para las colas motorizadas por Redis. Entra en Horizon documentation para más información.

Las colas de Laravel brindan una API unificada a través de una variedad de backends de cola diferentes como Beanstalk, Amazon SQS, Redis, o incluso una base de datos relacional. Las colas permiten diferir el procesamiento de una tarea que consume tiempo, como enviar un correo electrónico, para un momento posterior. Diferir estas tareas acelera drásticamente las solicitudes web en tu aplicación.

La configuración de cola está almacenada en config/queue.php. En este archivo encontrarás configuraciones de conexión para cada driver de cola incluido en el framework, que comprende una base de datos, Beanstalkd, Amazon SQS, Redis, y un controlador sincrónico que ejecutará trabajos inmediatamente (para uso local). Un driver de cola null también está incluido, que descarta los trabajos completados de la cola.

Ver post

Desarrollo de Paquetes – Documentación de Laravel 6

Introducción

Los paquetes son la forma principal de agregar funcionalidad a Laravel. Los paquetes pueden ser cualquier cosa, desde una estupenda manera de trabajar con fechas como Carbon, o un framework completo de pruebas BDD como Behat.

Hay diferentes tipos de paquetes. Algunos paquetes son independientes, lo que significa que funcionan con cualquier framework de PHP. Carbon y Behat son ejemplos de paquetes independientes. Cualquiera de estos paquetes se puede usar con Laravel simplemente solicitándolos en el archivo composer.json.

Por otro lado, otros paquetes están específicamente destinados para su uso con Laravel. Estos paquetes pueden tener rutas, controladores, vistas y configuraciones específicamente diseñadas para mejorar una aplicación Laravel. Esta guía cubre principalmente el desarrollo de aquellos paquetes que son específicos de Laravel.

Ver post

Notificaciones – Documentación de Laravel 6

Introducción

Además de soporte para enviar correos electrónicos, Laravel brinda soporte para el envío de notificaciones mediante una variedad de canales de entrega, incluyendo correo, SMS (a través de Nexmo) y Slack. Las notificaciones pueden ser también almacenadas en una base de datos para que puedan ser mostradas en la interfaz de tu página web.

Generalmente, las notificaciones deben ser mensajes cortos e informativos que notifiquen a los usuarios que algo ocurrió en tu aplicación. Por ejemplo, si estás escribiendo una aplicación de facturación, podrías enviar una notificación de «Recibo de Pago» a tus usuarios mediante correo electrónico y por SMS.

Crear notificaciones

En Laravel, cada notificación está representada por una sola clase (generalmente almacenada en el directorio app/Notifications). No te preocupes si no ves este directorio en tu aplicación, será creado por ti cuando ejecutes el comando Artisan make:notification:

php artisan make:notification InvoicePaid

Este comando colocará una clase de notificación nueva en tu directorio app/Notifications. Cada clase de notificación contiene un método via y un número variable de métodos de construcción de mensaje (tales como toMail o toDatabase) que convierten la notificación en un mensaje optimizado para ese canal en particular.

Enviar notificaciones

Ver post

Correos Electrónicos – Documentación de Laravel 6

Introducción

Laravel proporciona una API limpia y simple sobre la popular biblioteca SwiftMailer con drivers para SMTP, Mailgun, Postmark, Amazon SES y sendmail, permitiéndote comenzar rápidamente a enviar correos a través de un servicio local o en la nube de tu elección.

Ver post

Helpers – Documentación de Laravel 6

Introducción

Laravel incluye una variedad de funciones «helpers» globales de PHP. Muchas de esas funciones son usadas por el mismo framework; sin embargo, eres libre de usarlas en tus aplicaciones si lo encuentras conveniente.

Métodos disponibles

Arreglos & Objetos

Ver post

Almacenamiento De Archivos – Documentación de Laravel 6

Introducción

Laravel proporciona una poderosa abstracción del sistema de archivos gracias al genial paquete de PHP Flysystem de Frank de Jonge. La integración de Flysystem de Laravel proporciona drivers simples de usar para trabajar con sistemas de archivos locales y Amazon S3. Aún mejor, es maravillosamente simple cambiar entre estas opciones de almacenamiento de modo que la API permanezca sin cambios para cada sistema.

Configuración

La configuración del sistema de archivos está ubicada en config/filesystems.php. Dentro de este archivo puedes configurar todos tus «discos». Cada disco representa un driver de almacenamiento y una ubicación de almacenamiento en particular. Configuraciones de ejemplo para cada driver soportado están incluidas en el archivo de configuración. Así que, modifica la configuración para reflejar tus preferencias de almacenamiento y credenciales.

Puedes configurar tantos discos como quieras e incluso tener múltiples discos que usen el mismo driver.

Ver post

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Suscríbete a nuestro boletín

Recibe consejos útiles, promos y múltiples recursos directamente en tu correo.

Tu nombre y correo serán enviados directamente a MailChimp. No compartiremos tus datos con otras empresas.