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 →Te 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: –model=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 –resource

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(‘page’,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 “create_” 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