Laravel y Base de Datos

Entorno de trabajo y repaso de Laravel

1

Qué aprenderás sobre Laravel Avanzado

2

Repaso de Laravel y requisitos del curso

3

Configuración de la base de datos-SQLite en Laravel

4

Instalación, configuración y uso de Homestead

5

Instalar Laravel Sanctum

6

API de autenticación: laravel UI y laravel sanctum

Manejo de tu base de datos con Laravel

7

Capa de transformación con API Resources

8

Manejo de relaciones en bases de datos con Laravel

9

Relaciones Polimórficas en Eloquent

La terminal de Laravel

10

Cómo crear comandos para la terminal de Laravel

11

Ejecutando comandos desde la API

12

Programación de tareas

Eventos y tareas de Laravel

13

Eventos y Listeners en Laravel

14

Eventos de Eloquent

15

Introducción al uso de Queues y Jobs

16

Cómo disparar eventos en Queues

17

Laravel Horizon

Manejo de errores

18

Cómo capturar y leer errores con la clase Handler

19

Excepciones personalizadas

20

Excepciones HTTP personalizadas y debugging con Laravel Telescope

21

Configuración de logs y channels en Laravel

El corazón de Laravel

22

Ciclo de vida de una aplicación en Laravel

23

¿Qué son los service containers?

24

¿Cómo funciona un service container?

25

Registro y carga de clases con service providers

Creación de paquetes

26

¿Cómo crear mis propios paquetes de Laravel?

27

Propiedades para manejo de dependencias

28

Comprende el archivo composer.json

29

Extendiendo composer.json, autocarga de clases y PSR-4

30

Crear mis propios Services Providers

31

Publicación de archivos

32

Uso de repositorios locales

33

Publicación de paquetes en packagist

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Cómo crear comandos para la terminal de Laravel

10/33
Recursos

Aportes 10

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

¿No entiendo por qué el profesor explica todos estos conceptos a una velocidad tan alta, cual es la razón?

¿Por qué no extender un poco más el video para explicar todo detalladamente?

Vuelve y juega partes cortadas y sin explicar.

Avanzado no significa explicar todo a la hp, creo que se refiere a tener la misma hp paciencia que en un curso básico pero explicando conceptos avanzados.

😦

Como aclaración, ya que esto fuer cortado de uno de los videos, para hacer uso del Auth::routes() necesitan tener instalado el Laravel UI que se encarga de gestionar esto, simplemente ejecutan el comando:

composer require laravel/ui

Adicionalmente aquí dejo el enlace del commit de esta clase con Laravel 8:

https://github.com/RetaxMaster/platzi-api/commit/a757d1ed262642ba12eef5bae022a0f6fdd8df7f

reto cumplido

lo único que hay que hacer es en la consulta eso es lo importante yo la solucione asi

 $builder->whereNull('email_verified_at')
 ->whereRaw('email_verified_at BETWEEN DATE_ADD(CURDATE(), INTERVAL -7 DAY) AND CURDATE()');

Con Laravel Sail, ya no es necesario utilizar Mailtrap, si no con el contenedor de Mailhog simular el servicio del correo electrónico en el local.

Igual han de saber un poco de docker para correr los contenedores.

Mi solución al reto

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Models\User;
use Carbon\Carbon;

class RequestEmailVerification extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'request:emailverification';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Send an email to all the users that have not verify their email';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
        $builder = User::query()
                        ->whereNull('email_verified_at')
                        ->whereDate('created_at', '<=', Carbon::now()->subDays(7)->format('Y-m-d'));

        if ($count = $builder->count()) {
            $this->info("{$count} email will be sent");
            $this->output->progressStart($count);

            $builder->each(function (User $user) {
                $user->sendEmailVerificationNotification();
                $this->output->progressAdvance();
            });

            $this->output->progressFinish();
            $this->info('emails sent');
        } else {
            $this->info('No email sent');
        }

        return 0;
    }
}

Si tienen este error: Cannot send message without a sender address
ejecuten esto: php artisan config:clear

este profe explica muy bien para quienes ya tenemos esos conceptos avanzados, pues si he hecho varios comandos en mis aplicaciones, pero aca aprendi algunas cosas como pasar param al comando

Para que no se sobre escriba el texto info durante la ejecucion de la barra puedes usar un return y cambiar el orden que primero termine la barra y despues escriba el mensaje:

        if ($count) {
            $this->output->progressStart($count);

            $builder->whereNotNull('email_verified_at')->each(function(User $user) {
                $user->notify(new NewsletterNotification());
                $this->output->progressAdvance();
            });


            $this->output->progressFinish();
            return $this->info('Se enviaron ' . $count . ' emails');
        }

Tambien puedes acceder a los metodos warn() y error() que aceptarn cadenas de textos para cambiar el color del texto que se imprime en consola

Muy interesante…

Hola, para qué pones el método query() en cada modelo de eloquent que utilizas?