Entender Laravel

1

隆Actualizamos este curso!

2

驴Qu茅 es Laravel?

3

Herramientas necesarias para trabajar con PHP y Laravel

4

Entendiendo el ciclo de vida de las solicitudes web

5

Qu茅 es un CRUD y c贸mo implementarlo

6

L贸gica de controladores y vistas con datos de prueba

7

Creando un formulario

Comprender los Fundamentos de Laravel

8

Sistema de rutas y controladores

9

Uso de Middlewares

10

Validaci贸n de datos (rutas, vistas, formularios y controladores)

11

Blade: sistema de plantillas avanzado

12

Trabajando con el componente Laravel/UI

Aprender sobre Eloquent ORM

13

Eloquent: trabajando con este ORM

14

Relaciones de tablas

15

Colecciones y serializaci贸n de datos

16

Formato de valores en tablas y presentaci贸n de datos

Crear PlatziPress

17

Proyecto Blog: presentaci贸n y configuraci贸n inicial

18

Creaci贸n de tablas, entidades y datos de prueba

19

Plantillas de trabajo y entendiendo el login

20

Dise帽o visual con Bootstrap

21

Vista index y botones de acci贸n

22

Implementaci贸n del formulario de creaci贸n

23

Implementaci贸n del guardado

24

Creando la funci贸n de editar un post

25

Actualizando nuestros posts

26

Integrando contenido audiovisual

Construir Proyecto Final: API con TDD (Intermedio)

27

Introducci贸n al testing

28

Metodolog铆a TDD y testing HTTP

29

Proyecto API con TDD: presentaci贸n y configuraci贸n inicial

30

Store con TDD

31

Refactorizaci贸n y validaci贸n en Store

32

Show con TDD

33

Update y validaci贸n con TDD

34

Delete con TDD

35

Index con TDD

36

Protecci贸n de una API con Login

37

Cierre del curso

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷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

Sistema de rutas y controladores

8/37
Recursos

Aportes 48

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

  • Route::resource: Te permite gestionar 7 rutas junto con un controlador
  • php artisan make:controller [NombreControlador]: Genera un controlador
  • php artisan make:controller [NombreControlador] --resource: Genera un controlador con las 7 funciones necesarias que necesita Route::resource
  • php artisan make:controller [NombreControlador] --resource --model: Genera un controlador con las 7 funciones necesarias que necesita Route::resource as铆 como el modelo necesario para ese controlador

Sistema de rutas y controladores


  • Route 鈫 Es una capa encargada de manejar el flujo de nuestra app. Cada ruta va a apuntar a una l贸gica de programaci贸n.
  • Controller 鈫 Nos permite agrupar l贸gica.

En la carpeta Routes dentro de nuestro proyectos tendremos varios archivos que vienen por defecto. Y sus funcionalidades son:

  • web.php 鈫 En este archivos es donde registraremos las rutas de nuestra aplicaci贸n.
  • console.php 鈫 Aqu铆 podremos crear nuestros comandos de consola personalizados.
  • channels.php 鈫 Aqu铆 podemos registrar todos los canales de transmisi贸n de eventos que admite nuestra aplicaci贸n.
  • api.php 鈫 En este archivo van la rutas del api.

Lo siguiente puede ser el c贸digo para una simple ruta

Route::get('/', function () {
    return view('welcome');
});

Si 煤nicamente queremos retorna una vista podemos hacerlo utilizando el siguiente c贸digo, esto se suele utilizar para hacer p谩ginas est谩ticas.

Route::view('vista', 'welcome');

// Con el Array podemos enviar datos.
Route::view('vista', 'welcome', ['app' => 'hola']);

Para crear vistas que trabajen con controladores usar:

// Llamar al controlador.
use App\Http\Controllers\PageController;

Route::resource('pages', PageController::class);
  • Route::resource 鈫扵e permite gestionar 7 rutas junto con un controlador. Entre las 7 rutas que crear谩 estar谩:
    • page.index 鈫 La vista de index que contiene el listado completo. M茅todos disponibles: GET.
    • page.store 鈫 Para salvar datos. M茅todos disponibles: POST.
    • page.create 鈫 Para el formulario de creaci贸n. M茅todos disponibles: GET.
    • page.show 鈫 Para mirar una 煤nica p谩gina. M茅todos disponibles: GET.
    • page.update 鈫 Actualizar. M茅todos disponibles: PUT.
    • page.destroy 鈫 Eliminar. M茅todos disponibles: DELETE.
    • page.edit 鈫 Para el formulario de editar. M茅todos disponibles: GET.

Para crear un controlador que tenga todos los m茅todos que va a manejar, escribimos el comando:

php artisan make:controller **nombre** --resource

Si queremos crear un controlador que adem谩s de tener todos los m茅todos este enlazada a la tabla de la database (el siguiente comando tambi茅n crear谩 la tabla si no existe) que piensa consultar, utilizamos este comando:

php artisan make:controller PageController --resource --model=Page

En laravel 8.x hay que importar el controlador:

use App\Http\Controllers\PageController;

Y la ruta:

Route::resource('pages', PageController::class);

Recuerden que podemos obtener mas informaci贸n al momento de utilizar un comando usando el flag

--help

Ejemplo:

php artisan make:controller --help

Les estar铆a desplegando todas las opciones que tienen con ese comando

Podemos omitir un paso de abrir con VSCode utilizando code . despu茅脽 de usar cd routes
O cuando vayan a pasar a una carpeta y abrirlo podemos hacer:
cd <carpeta> && code .

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

.
just in case! 馃槈
.
comando para crear el proyecto en una versi贸n previa a la estable actual

Cuando creamos un controlador y le pasamos la opcion de: 鈥搈odel=NombreModelo
el automaticamente nos crea el modelo si este no existe

php artisan make:controller PageController --resource --model=Page

Al usar resource, estamos creando las 7 rutas posibles para un controlador, un controlador b谩sicamente necesita poder realizar las funciones un CRUD, as铆 que al utilizar resources Laravel nos detecta eso y nos crea las rutas que necesitamos, y lo mejor de todo es que, si utilizamos la linea de comandos, Laravel nos deja el c贸digo base ya listo y preparado solo para rellenarlo:D

En Laravel 8.x la ruta resource quedaria asi:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PageController;
Route::resource('pages', PageController::class);

Cuando creamos un controlador con el comando:

php artisan make:controller PageController

Este Controlador se crea vacio, pero cuando le agregamos la opci贸n de 鈥搑esource

php artisan make:controller PageController --resource

Este crea los 7 m茅todos correspondientes a las rutas

Wow en un comando creas tanto que genial

Laravel ayuda a crear controladores y rutas de forma eficiente, solo debemos preocuparnos de la funcionalidad particular que le queramos dar.

Llevo un a帽o desarrollando con Laravel, y no conocia esas modalidades del Make.

tengo dos a帽os trabajando con php puro y ahora que estoy viendo laravel estoy enamorado de este framework

Desde la terminal:

php artisan make:controller pagescontroller --resource --model=pages

los tips jeje

Para laravel 8:

Route::resource(鈥榩age鈥,PageController::Class);

Rutas


Console: Para nuestros comandos personalizados

Channels: Para notificaciones, ya sea emails o celulares

Con el m茅todo resource podemos crear 7 rutas posibles

Route::resource('pages', 'PageController');

Adem谩s, podemos definir el anterior comando sin haber creado el controlador y el modelo, le pasamos el siguiente comando:

php artisan make:controller PageController --resource --model=Page

wow que poder tiene laravel, cada vez me gusta m谩s el curso, quiero terminar para experimentar xD

este curso me esta gustando mucho

  • Route: Capa encargada de manejar el flujo.
  • Controller: Permite agrupar l贸gica.

En la carpeta routes se encuentran todas las rutas del proyecto, hay un archivo para los diferentes tipos de rutas que existen en Laravel, pero por ahora nos concentraremos en el archivo web.

Esta es la estructura de una ruta:

// Route::<method>('<route>', function(){
//   
// })

// retorna una vista
Route::get('/', function () {
    return view('welcome');
});

// retornar vista en una l铆nea
Route::view('vista', 'welcome');

Las rutas pueden cualquier cosa que sea necesario, un texto, archivo JSON, PDF, etc.

Generalmente las rutas que retornan directamente una vista se usan solo para vistas est谩ticas, cuando creamos una ruta el objetivo es conectar una vista con los datos de un controlador.


Con el m茅todo resource de Route podemos crear directamente las 7 rutas de CRUD en una sola instrucci贸n.

Route::resource('pages', 'PageController');

Las rutas son:

  • Index: Mostrar todas las p谩ginas
  • Store: Guardar las p谩ginas
  • Create: Crear una nueva p谩gina
  • Show: Mostrar una 煤nica p谩gina
  • Update: Actualizar un p谩gina
  • Destroy: Eliminar una p谩gina
  • Edit: Formulario para editar una p谩gina

Para crear un controlador que ya est茅 preparado con estas 7 rutas ejecuta el comando: $ php artisan make:controller PageController --resource.

Para crear un controlador que adem谩s este conectado autom谩ticamente con el modelo ejecuta el comando: $ php artisan make:controller PageController --resource --model=Page. Si el modelo no existe te preguntar谩 si deseas crearlo.

Espacio donde se ense帽a a crear controladores y rutas de manera sencilla desde la terminal. Anotaciones relevantes: Route::resource: Te permite gestionar 7 rutas junto con un controlador php artisan make:controller [NombreControlador]: Genera un controlador php artisan make:controller [NombreControlador] --resource: Genera un controlador con las 7 funciones necesarias que necesita Route::resource php artisan make:controller [NombreControlador] --resource --model: Genera un controlador con las 7 funciones necesarias que necesita Route::resource as铆 como el modelo necesario para ese controlador

Es bueno practicar con comando y luego sin comandos, para entender bien el proceso.

Pueden usarl el comando

php artisan make:model "nombre" -mcr 

Eso les creara el modelo y el controlador de tipo resource

Desde la terminal una vez entando en la ruta del proyecto simplemente colcas code . y se abre VSCode en esa espacio de trabajo

Hacer las cosas mas simple como nos los presenta Laravel, es la forma mas eficiente de trabajar, sin duda.

En lugar de definir toda su l贸gica de manejo de solicitudes como cierres en sus archivos de ruta, es posible que quieras organizar este comportamiento utilizando un controlador.

Los controladores pueden agrupar la l贸gica de manejo de solicitudes relacionadas en una sola clase.

Por ejemplo, una clase UserController podr铆a manejar todas las solicitudes entrantes relacionadas con los usuarios, incluida la visualizaci贸n, creaci贸n, actualizaci贸n y eliminaci贸n de usuarios.

De forma predeterminada, los controladores se almacenan en el directorio app / Http / Controllers.

Comandos alternativos para crear controladores, migraciones y modelos.

  • Para crear Modelo, Migration y Controlador con sus funciones.
$ php artisan make:model Page -m -r

Donde: -m es la migraci贸n y -r es el controlador con sus recursos.
.

  • Para crear Contolador con sus funciones y modelo.
$ php  artisan make:controller PageController -r -m Page

Donde: -r son los recursos del controlador, -m es el modelo; siendo Page el nombre del modelo.
.


C贸digo extra para usar con route::resource().

  • Crear las rutas indicadas.
    Laravel 7
Route::resource('pages', 'PageController')->only('[index','store','create']);

Laravel 8

Route::resource('pages', PageController::class)->only('[index','store','create']);
  • No crear las rutas indicadas.
    Laravel 7
Route::resource('pages', 'PageController')->except(['destroy', 'update', 'show']);

Laravel 8

Route::resource('pages', PageController::class)->except(['destroy', 'update', 'show']);

馃憤

Con este comando se puede crear el modelo con sus 7 metodos, el controlador y la migracion

php artisan make:model Page -crm

Esta clase es impresionante la explicaci贸n tan b谩sica del profesor para entender el manejo y creaci贸n de las rutas. 隆Vamos por m谩s!

Al momento de usar Route::resource() -> se crean 7 Rutas posibles, usando los verbos HTTP

me surgieron 2 preguntas

  1. como configuro laravel para que mis modelos est茅n en app/models/
  2. puedo crear un controller, model y su vista con las respectivas funciones para visualizar de forma autom谩tica con artisan?

Explica demasiado bien este profesor.

Porque el campo domain esta vacio?

El uso de la terminal agiliza el desarrollo en laravel.

Muy interesante las rutas de laravel, creo que al aprenderlas e implementarlas bien nos pueden ahorrar mucho tiempo y trabajo.

php artisan make:controller [NombreControlador] --resource --model: Genera un controlador con las 7 con Route::resource y modelo modelo del controlador

Desde la terminal:

php artisan make:controller pagescontroller --resource

Estoy usando como IDE de desarrollo PHP Strom y me a agradado mucho como se integra con laravel

Tambi茅n se puede crear el archivo de Migraci贸n + Modelo + Controlador(resource) + Factory con el comando:

php artisan make:model Nombre --all

Cuando est茅n en la consola dentro del proyecto, pueden dar el siguiente comando:

code .

Y ya abren su proyecto con Visual Studio Code 馃槈 馃槈 馃槈

Para los que estan viendo esto usando Laravel 8, recuerden que para llamar al controlador, tiene que ser con esta sintaxis: Controller::class, pasar solo el nombre del controlador mediante un string ya no funciona

Si metemos el siguiente comando nos generara tanto el controlador como el modelo:
php artisan make:model Producto --resource
Adem谩s de que las migraciones las podemos hacer con el siguiente comando:
php artisan make:migration create_productos_table
Nota: el atributo 鈥渃reate_鈥 nos permite que la migracion se cree con el nombre y genere el campo id y el campo timestamps

Un metodo que crea los controladores y migraciones es
php artisan make:model $nombremodelo -mcr

al escribir -m crea la migracion
c el controlador
r crea los recursos del controlador

Tip: Dentro del directorio del proyecto en consola pueden usar el comando

code .

para abrir el proyecto directamente en visual code.

Puedes usar algunos shortcuts en la terminal como

php artisan make:controller <nameOfController> -r

en vez de

php artisan make:controller <nameOfController> --resource

otro ser铆a para listar las rutas

php artisan r:l

en vez de

php artisan route:list

Grande Laravel