Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Curso de Introducción a Laravel 6

Curso de Introducción a Laravel 6

Profesor Italo Morales F

Profesor Italo Morales F

Qué es un CRUD y cómo implementarlo

5/37
Recursos

Aportes 96

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para aquellos que esten trabajando con **Laravel V8 **van a tener muchos dolores de cabeza, resulta que cambio un poco la forma de escribir las rutas, para no tener errores usen:

use App\Http\Controllers\UserController;
Route::get('/', [UserController::class, 'index']);
Route::post('users', [UserController::class, 'store']);
Route::delete('users/{user}', [UserController::class, 'destroy']);

Para quienes estén usando XAMPP el cual usa MariaDB les saltará un error

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

Esto se soluciona fácil, necesitan ubicar el archivo app/Providers/AppServiceProvider.php, luego en el incluyen el namespace

use Illuminate\Support\Facades\Schema;

y en la función boot() necesitan agregar lo siguiente:

public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

Con esto pueden volver a correr el comando de migración con php artisan migrate:fresh para eliminar todas las tablas y volverlas a migrar y les debe de solucionar el problema.

Qué es un CRUD y cómo implementarlo


CRUD son las siglas para manipular una base de datos. Necesitamos que todo sistema (cualquiera que sea) cumpla con estas características.

  • C → Create
  • R → Read
  • U → Update
  • D → Delete

Creamos la base de datos con XAMPP en PHPAdmin. Y la conectaremos yendo a nuestro proyecto laravel al archivo .env y cambiaremos la línea que tiene:

DB_DATABASE=*nombre de la base de datos*

Las tablas de las databases se hacen en Laravel, no en el cliente de desarrollo. Para crear las tablas vamos al terminal.

  • php artisan → Es un comando que nos muestra los comandos que podemos usar en laravel.
  • php artisan migrate → Para crear las tablas en la databases.
  • php artisan migrate:fresh → Para eliminar todas las tablas y volverlas a migrar y les debe de solucionar el problema.
  • php artisan route:list → Nos muestra un listado de las rutas que tenemos.

El arroba (@) hace referencia al método que le indiquemos después.

Route::get('/', 'UserController@index');

🎛 Un controllador es el archivo o la clase donde tenemos nuestra lógica, lo que va a responder cuando lleguemos a esa ruta

  • php artisan make:controller nombre → Con este comando creamos nuestro controlador.

php artisan make:model ModelName -crm | Crea archivo controlador, modelo y migracion con un solo comando.

Todxs estamos de acuerdo con que la sección de comentarios con los estudiantes que suben código actualizado es lo mejor que nos puede pasar?
Gracias compañexs!

Métodos http en servidor:
Get: para mostrar o listar.
Post: para crear
Put: para modificar o editar
Delete: eliminar o borrar

En Laravel V8 se puede mantener el mismo codigo que se manja en el video solo se debe descomentar

protected $namespace = 'App\\Http\\Controllers';

del archivo: RouteServiceProvider.php de la carpeta Providers

para crear un controlador con las funciones que necesitamos para generar un CRUD:
php artisan make:controller UserController --resource

CRUD -> Create,Read,Update and Delete

El siguiente comando crea todas las funciones automáticamente del controlador. Solo es adicionar -r a lo que el profesor explico.

php artisan make:controller UserController -r

para los que tengan ese error

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

la solución es :

entrar a la carpeta app ->Providers-> abrir el archivo AppServiceProvider.php

y alli resplazar todo el codigo por



<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }
}

<code>

Alguien tuvo el siguiente error :

Illuminate\Database\QueryException

could not find driver (SQL: select * from information_schema.tables where table_schema = crud and table_name = migrations and table_type = ‘BASE TABLE’)

El enfoque del curso esta perfecto pero peca mucho en pensar que todos tienen el mismo nivel, deberia ser mas pausado para las cosas de la instalación (composer, crear db’s, etc). En resumen, se va muy rápido con temas básicos.

Las personas que estén haciendo esto ya con Laravel 9 pueden hacerlo de la siguiente forma:

use App\Http\Controllers\UserController;

Route::controller(UserController::class)->group(function()
{
    Route::get('/', 'index');
    Route::post('users', 'store')->name('user.store');
    Route::delete('users/{user}', 'destroy')->name('user.destroy');
});

Tengo el siguiente error al tratar de migrar las tablas, ¿alguna solución?

PS C:\xampp\htdocs\test\ciclo> php artisan migrate

   Illuminate\Database\QueryException 

  could not find driver (SQL: select * from information_schema.tables where table_schema = crud and table_name = migrations and table_type = 'BASE TABLE')

  at C:\xampp\htdocs\test\ciclo\vendor\laravel\framework\src\Illuminate\Database\Connection.php:671
    667▕         // If an exception occurs when attempting to run a query, we'll format the error
    668▕         // message to include the bindings with SQL, which will make this exception a
    669▕         // lot more helpful to the developer instead of just the database's errors.
    670▕         catch (Exception $e) {
  ➜ 671▕             throw new QueryException(
    672▕                 $query, $this->prepareBindings($bindings), $e
    673▕             );
    674▕         }
    675▕

  1   C:\xampp\htdocs\test\ciclo\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDO\Exception.php:18
      Doctrine\DBAL\Driver\PDO\Exception::("could not find driver")

  2   C:\xampp\htdocs\test\ciclo\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:41
      Doctrine\DBAL\Driver\PDO\Exception::new()```

php artisan migrate para correr las migraciones

php artisan route:list para ver por consola todas las rutas de la aplicacion

Si como yo al hacer php artisan migrate os sale SQLSTATE[42000] indicando que una key de tu tabla pesa demasiado, una solución es ir a la tabla en cuestión en nuestro editor de código que las vamos a encontrar dentro de database>migrations. Allí buscamos la key que nos indica que ocupa demasiado (en mi caso $table->string('email')->unique();) y le añadimos un limite, por ejemplo:

$table->string('email', 45)->unique();

Una vez echo eso podemos volver a nuestra terminal y allí indicarle php artisan migrate:fresh, puede que nos vuelva a saltar otra vez ese error en otra tabla o así, pero ahora ya sabemos como solucionarlo! 😄

Hola. ¿Alguien ha tenido este error?
Tengo esto en el .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=postgres
DB_PASSWORD=

Esto me sale en la terminal:

  Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2006] MySQL server has gone away (SQL: select * from information_schema.tables where table_schema = database and table_name = migrations and table_type = 'BASE TABLE')

Ya he intentado con XAMPP y con LARAGON, cambiando el puerto dependiendo cada uno. Y también me aseguré de haber creado antes la base de datos en PgAdmin (Postgres). 😦

php artisan all commands

MVC la C es del controller este es como un intermediario entre el modelo y la vista

Version de Laravel usada 6.X

para instalar con composer se usa:
composer create-project --prefer-dist laravel/laravel blog "6.*"

laravel es precioso!

Excelente, Laravel facilita muchas cosas con los comandos, y las migraciones para la base de datos son increíbles!

Para que puedan crear el proyecto en la version 6 de Laravel a como se trabaja en el curso es de la siguiente forma:

composer create-project --prefer-dist laravel/laravel name_project “6.*”

make:controller UsersController --resource
Si agregas “–resource” Laravel te crea automáticamente los metodos CRUD 😄

Se hace muy sencilla y clara la explicación del profesor, su forma de expresarse me permite ir a la par que el haciendo el proyecto sin tener que pausarlo.

php artisan make:controller [NombreControlador] para generar un nuevo controlador desde la terminal

Cuando escribo php artisan route:list me sale lo siguiente

 Illuminate\Contracts\Container\BindingResolutionException 

  Target class [UserController] does not exist.

  at vendor/laravel/framework/src/Illuminate/Container/Container.php:811
    807808try {
    809$reflector = new ReflectionClass($concrete);
    810▕         } catch (ReflectionException $e) {
  ➜ 811throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
    812▕         }
    813814// If the type is not instantiable, the developer is attempting to resolve
    815// an abstract type such as an Interface or Abstract Class and there is

  1   [internal]:0
      Illuminate\Foundation\Console\RouteListCommand::Illuminate\Foundation\Console\{closure}()

      +13 vendor frames 
  15  [internal]:0
      Illuminate\Foundation\Console\RouteListCommand::Illuminate\Foundation\Console\{closure}()```

Para los que tienen problemas con la parte de Base de Datos y usan MAMP, solo abran MAMP, Eligen WebStart-> PhpMyAdmin -> crean el nombre de la base y en la misma pagina de WebStart aparece la configuración que deben usar en mi caso es la siguiente:

yo utilizo es laragon

para los que quieran usar la version del profe y usen Xampp, descarguen la version old de xampp para que sea compatible con laravel 6 por la version del PHP

Hola amigos, queria compartir esta configuracion de docker compose de MySQL y PhpMyAdmin por si alguien ha tenido problemas para instalarlo en su maquina.

  • Primero creamos una carpeta en el proyecto llamada mysql_data para que nuestro container tenga persistencia
version: “3.8”

services:
	mysql:
		image: mysql
		environment:
			MYSQL_ROOT_PASSWORD: platzi (o lo que quieras)
		volumes:
			- ./mysql_data:/var/lib/mysql
		ports:
			 - 3306:3306
		expose:
		- ‘3306’

	phpmyadmin:
    		image: phpmyadmin
   		restart: always
    		ports:
    			- 8080:80
   		 environment:
    			- PMA_ARBITRARY=1
  • Despues ejecutas en terminal: docker-compose up -d

  • Despues vas a localhost:8080 en nuestro navegador para usar phpmyadmin, aqui ingresamos la IP del container en el primer campo, luego el usuario que es root y la contrasena que pusimos en el archivo docker-compose

Para conseguir la IP del container usamos docker ps en la terminal, luego copiamos el ID del container y despues ingresamos el comando docker inspect ID_del_container, esto nos dara la direccion IP del container.

web.php

<?php

Route::get('/', 'UserController@index');
Route::post('users','UserController@store')->name('users.store');
Route::delete('users/{user}','UserController@destroy')->name('users.destroy');

Para la nueva versión de Laravel 9 se puede asociar un controlador para un grupo de rutas

use App\Http\Controllers\UserController;

Route::controller(UserController::class)->group(function() {
    Route::get('/', 'index');
    Route::post('/users', 'store');
    Route::delete('/users/{user}', 'destroy');
});

PARA LOS QUE SON NUEVOS COMO YO DESDE WINDOWS Y QUIEREN APRENDER EN ESTE CURSO PERO YA ESTAMOS EN LA ERA DE LARAVEL 9 Y PHP 8 DEBERAN EMULAR UN ENTORNO DE DESARROLLO PHP 7.2.5 Y LARAVEL 6x.

Les recomiendo utilizar la herramienta LARAGON la misma puedes tener múltiples entornos de desarrollo fuera de tu pc en un virtual host que genera laragon, en mi caso tengo 3 versiones de php instaladas y 2 versiones de laravel.

Para aquellos como yo que ni idea de como instalar una base de datos, les dejo este link donde se explica muy bien como instalar en WSL2 de Windows, Maria DB.

https://www.youtube.com/watch?v=_LAu7iRQ018

Además este gran compendio de otras instalaciones relacionadas…

https://earhackerdem.github.io/wsl/configurarWslParaEntornoDeDesarrollo.html#instalarMariaDB

Crear el servidor Laravel: Uso de xammp, desde una terminal, entrar a la ruta donde tenemos nuestro proyecto y escribir el siguiente comando php artisan serv Solamente copiamos o url y la pegamos en nuestro navegador web de preferencia.

Para aquellos que le de un error al comando php artisan route:list del minuto 11:10 lo que tienen que hacer es simplemente ir a la carpeta app / providers / routeserviceprovider.php y descomentar la linea 29 , // protected $namespace = ‘App\Http\Controllers’; .
Asi lo solucione , espero les sirva!

Este comando sirve para visualizar las rutas que tenemos actualmente en nuestro proyecto:

php artisan route:list

La configuración de base de datos se hace en:

config/database.php

Sin embargo este archivo anterior no lo debemos de manipular, esto utiliza variables que declaramos en el archivo .env

Para agregar en el controlador los métodos:

  • index
  • store
  • update
  • destroy

Puedes correr el comando y agregar la bandera –resource al final del nombre de tu controlador:

php artisan make:controller UserController --resource

De esa manera las integrara automáticamente cuando se creé el controlador.

Un CRUD son las siglas de Create, Read, Update y Delete; que son las operaciones que todo sistema necesita.

Configurar Base de Datos

Para indicarle a Laravel con cuál BD va a trabajar hay que escribir los datos en el archivo config>database.php. Deben estar en el motor de BD correspondiente.

Para hacer uso de las mejores prácticas no se debe modificar directamente este archivo si no usar el archivo .env que crea Laravel y poner ahí las credenciales.


Cómo funcionan las tablas en Laravel

Las tablas se crean directamente en Laravel, y después son llevadas a la BD por medio de las migraciones. Toda modificación de tablas se hace en archivos PHP dentro de la carpeta migrations y a través de las migraciones se llevan los cambios a la BD. Nunca se manipula directamente la BD para que sea más fácil compartir el proyecto y trabajar en equipo.

El comando para hacer las migraciones es: php artisan migrate.

Por defecto Laravel cuenta con algunas migraciones para crear tablas con los campos necesarios que pueden ser necesarias como users.


Rutas

Con el comando php artisan route:list podemos ver todas las rutas de la aplicación. Nos mostrará el método de la ruta, el URI, nombre, action y middleware.

Para definir una ruta se usa la siguiente sintáxis

// Route::<metodo>('<ruta>','<controlador>@<action>')
Route::get('/', 'UserController@index')

Controladores

Un controlador es la lógica que da respuesta a una ruta.

Para crear un controlador se usa el comando: php artisan make:controller <nombre>. El controlador se crea en la ruta app>http>controllers.

Si el controlador se crea de forma manual funciona de la misma forma, pero Laravel ya nos da los comandos necesarios para hacerlo de forma automática.

Dentro del controlador se crean diferentes funciones (actions) que darán respuesta a las rutas con vistas (views).

Si al momento de ver el listado de rutas que tenemos una vez que creamos el UserController, les aparece un error diciendo que no encuentra esa clase, realicen la siguiente modificación:

Agreguen App\Http\Controllers\ previamente al UserController@index, quedaría algo como esto:

‘App\Http\Controllers\UserController@index’

voy feliz con este curso vamos en la clase 4 y e aprendido muchisimo.


Hola a alguien mas le paso este error,tengo el proyecto en Laravel 6 y me me dice Undefined type ‘Route’.intelephense(1009), en el archivo Web.php

Artisan es una Interfaz de Linea de Comando (CLI), el cual ofrece utilidades que tienden a realizarse mucho en el desarrollo de un proyecto.

Por su parte, las migraciones no solo permiten crear los modelos de nuestra base de datos, sino que actúan como un historial de cambios aplicados a nuestras base de datos (similar a lo que hacemos con git) que nos permite resguardar nuestra data al aplicar dichos cambios, lo cual es sumamente útil al tener un sistema en producción. Les dejo este enlace con mas detalle del punto de las migraciones.

Para los que estén empezando este curso sin tener conocimiento acerca de Laravel, les sugiero descargar la versión de Laravel 7 ya que en la versión actual (8) la sintaxis para desarrollar en Laravel cambio un poco 😄.

Estoy usando Laragon y cree una bd en su motor. Como hago para que me reconosca la bd? Me sale este error.

Este comando crea un controlador ya con las funciones para el CRUD completo:

php artisan make:controller UserController -r

Si estás usando MAMP en mac debes agregar esta línea al .env en la config de la base de datos:

DB_SOCKET='/Applications/MAMP/tmp/mysql/mysql.sock'

Para los que tienen Mac y presentan problemas con la conexión de la base de datos, este vídeo de instalación me fue de utilidad: https://www.youtube.com/watch?v=vfLohlW_9oE&t=1s

Es probable que la aplicación: Sequel Pro, genere un nuevo error, pero se soluciona con esta guía: https://stackoverflow.com/questions/51179516/sequel-pro-and-mysql-connection-failed

Con el comando

php artisan make:controller PhotoController --resource

Se crea el controlador incluyendo todos los métodos necesarios.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

Buena explicacion!

Los controladores se ubican en la siguiente carpeta:

app > Http > Controllers > archivos de controladores

Comando para crear controlador:

 php artisan make:controller UserController

para ver las rutas tambien sirve abreviado, es muy chevere y rapido

php artisan r:l

Este curso esta buenisimo, me encanta este profesor, termine el otro curso de laravel y no es tan claro como este

Las ventajas de usar las migraciones para modificar la estructura de la base de datos son:

  • al trabajar en equipo todos los desarrolladores al actualizar el repo pueden tener los cambios
  • tener control de los cambios que se han realizado a la base de datos
  • poder reconstruir la estructura de la base de datos

En el archivo .env configuramos las variables de entorno
como los son:

  • DB_DATABASE
  • DB_USERNAME
  • DB_PASSWORD

En la ruta que se encuentran las migraciones de la base de datos
app > database > migrations > arhivos de migraicones

comando de utilidad en LARAVEL
php artisan
donde podemos dar comandos para hacer diferentes cosas como las migraciones

Las rutas en Laravel son manejadas en los archivos ubicados en:

app > routes > archivos de rutas (api.php | web.php)

el archivo: api.php es para las ruta que se manejan el API,
y el archivo: web.php es para las rutas que se manejan en la respuesta de vistas

Es recomendable o seguro utilizar el sistema de usuarios que te da por defecto laravel, yo nunca lo utilice siempre cree mis usuarios desde cero con la terminal de composer

para correr las migraciones y crear la estructura de la BD puedo usar el comando

php artisan migrate

el cual ejecuta los archivos necesarios en la ruta de las migraciones, en el caso de que no exista ninguna tabla se ejecutan todos los archivos de migraciones

al principio me costo mucho el curso por la instalación y eso, no me salia, pero me esta gustando mucho el curso y laravel!!!

Alguien me ayuda con este error, ya tengo instalado composer y laravel

Usando ( -r ó --resource ) crea todo el crud.

php artisan make:controller NombreController -r

Al momento de intentar crear el controlador “UserController” con artisan me manda un error y no lo crea, creo que es por la duplicidad de users en la declaracion de las rutas, no se ah que se deba.

Una consulta compañeros, cuando creo las tablas desde laravel y necesito estas tenga relaciones desde laravel tambien se hacen o esas si las podemos hacer directamente desde el SGBD?

No puedo creer lo fácil que es y yo espantando me cuando escuchaba “Laravel”.

Wow… todo quedo super claro y laravel nos ayuda muchisimo.

Me hizo recordar mi paso por rails… 😃

Excelente clase

En Laragon si no se actualiza el composer y el php pueden dar problemas a la hora de utilizar php artisan.

Se recompienda utilizar: composer upgrade

Si a la hora de migrate, obtienes un error como este:

   Illuminate\Database\QueryException 

  could not find driver (SQL: select * from information_schema.tables where table_schema = crud_new and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
    667|         // If an exception occurs when attempting to run a query, we'll format the error
    668|         // message to include the bindings with SQL, which will make this exception a
    669|         // lot more helpful to the developer instead of just the database's errors.
    670|         catch (Exception $e) {
  > 671|             throw new QueryException(
    672|                 $query, $this->prepareBindings($bindings), $e
    673|             );
    674|         }
    675| 

      +34 vendor frames 
  35  artisan:37
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

Puede ser porque falta instalar algunos drivers:

sudo apt install php-mysql

No me gusto para nada el curso, encuentro que se salta muchas partes, deberían mejorarlo. Gracias

si trabajas con XAMPP en Windows, para modificar la base de datos ingresa en tu navegador web a localhost/ phpmyadmin/ . Abrazo

  • La configuración de la BD en Laravel en el archivo .ev

  • Comando para ejecutar las migraciones es -> php artisan migrate

  • Comando para ver las rutas en el proyecto -> php artisan route:list

  • Comando para crear controladores -> php artisan make:controller nombreController

no han dicho nada sobre el cliente de bsaes de datos en el video, descargando workbench

para los que no les cargue el comando del listado de rutas
en la carpeta /App/providers/RouteServiceProvider.php descomentar la siguiente linea de ese archivo
protected $namespace = ‘App\Http\Controllers’;

Para los que quieran usar la version 6 de laravel y tengan instalada la 8 hay un comando muy util que especifica que version de laravel usar cuando creas un proyecto:

composer create-project --prefer-dist laravel/laravel ciclo "6.*"

Fuente:

https://laravel.com/docs/6.x

Por si gustan utilizar docker, les comparto el docker-compose.yml:

services:
    mysql:
        image: mysql
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        environment:
            MYSQL_DATABASE: 'test'
            MYSQL_USER: 'tester'
            MYSQL_PASSWORD: '1q2w3e4r'
            MYSQL_ROOT_PASSWORD: '1q2w3e4r'
        ports:
            - '3306:3306'
        volumes:
            - ./db:/var/lib/mysql

Donde en el mismo nivel, deberá existir la carpeta del volumen ./db cuya versión del docker-compose es 1.29.0.

Dentro de la app generada por Laravel, en las variables de entorno .env, nos aseguramos de lo siguiente:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=tester
DB_PASSWORD=1q2w3e4r

04:00 Comando de migración.

Cuando creé mi proyecto, se creó con Laravel 8.* y PHP 8.*
Sospeché que tendría muchos problemas, ya que el curso está basado en Laravel 6, y si somos nuevos en esto, lo ideal es instalar Laravel 6, se lo hace de esta forma:

composer create-project --prefer-dist laravel/laravel blog "6.*"

blog viene a ser el nombre de tu proyecto.
Con el comando anterior estamos instalando Laravel mediante composer y forzando a que se cree tu proyecto con Laravel 6.*

Tambien se puede utilizar el comando

php artisan make:controller UserController -r

para que cree el controlador con todas las funciones por defecto.

Mi actividad de la clase

Tuve poblemas tambien con php artisan migrate
------------- Probe lo que dice aca:
https://stackoverflow.com/questions/46745365/artisan-migrate-could-not-find-driver

No funciono y al final tengo comentado otravez la extension =>
extension=php_pdo_mysql.dll


entonces lo que realmente creo que soluciono el problema en mi caso fue:
revisar la version de php con:
php -v
luego installar la extension mysql segun la version de php:
sudo apt-get install php7.4-mysql


restaurar apache y mariadb:
service apache2 restart
sudo /opt/lampp/lampp stop
sudo /opt/lampp/lampp start

y en el archivo .dev
DB_HOST=127.0.0.1 ya que la habia puesto como localhost

Los que están usando workbench 8.0 si les aparece el error SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = crud-new and table_name = migrations and table_type = ‘BASE TABLE’)

Escriban en nuevo query:
ALTER USER ‘root’@“localhost” IDENTIFIED WITH mysql_native_password BY ‘password’, modificando su usuario y contraseña respectiva y podrán hacer la migración.

Para los que tenían el error al ejecutar el comando php artisan migrate

C:\xampp\htdocs\test\ciclo\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDO\Exception.php:18
      Doctrine\DBAL\Driver\PDO\Exception::("could not find driver")

Puede ser por dos razones, la primera y la má logica es que no hayas configurado el archivo .env (en la versión 8, viene ese archivo, no sé en las otras). Este archivo se encuentra en la raíz del proyecto.
Se debe modificar los parámetros para ingresar a la base de datos.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=**{TU PASSWORD}**

También, debemos configurar los parámetros en el archivo database.php que se encuentra en la carpeta config del proyecto.

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', '{TU BASE DE DATOS}'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', '{TU PASSWORD}'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

En este caso el driver que uso es mysql.

Por último si ya todo esto se encuentra con los parámetros correctos, puede que debas configurar el archivo de configuración de Apache (para los que estén usando xampp o appserv, entre otros) este archivo es httpd.conf. Dejaré un link con un turorial.
https://stackoverflow.com/questions/18740419/how-to-set-allowoverride-all

Después de hacer todo esto, deben reiniciar el servicio de apache o el servidor de php artisan.

isaac@DESKTOP-692ERS9:/mnt/c/laragon/www/laravel_platzi$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (84.35ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (77.52ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (64.23ms)
isaac@DESKTOP-692ERS9:/mnt/c/laragon/www/laravel_platzi$ php artisan route:list
+--------+----------+----------+------+---------+------------+
| Domain | Method   | URI      | Name | Action  | Middleware |
+--------+----------+----------+------+---------+------------+
|        | GET|HEAD | /        |      | Closure | web        |
|        | GET|HEAD | api/user |      | Closure | api        |
|        |          |          |      |         | auth:api   |
+--------+----------+----------+------+---------+------------+

Estaría genial que indicarais también que extensiones de VSCode te puede ayudar,

Yo por ejemplo no veo de los mismos “colores” el rema de “Route::get” …

Documentacion Oficial Laravel 8.x - Rutas
https://laravel.com/docs/8.x/routing#view-routes

php artisan route:list

Mi nuevo amigo

Cuando intento conectarme a la base de datos me sale el siguiente error. MySQL dijo: Authentication plugin ‘caching_sha2_password’ cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found