Introducción al controlador de ruta Laravel

Estos controladores le permiten crear sus clases de controlador utilizando métodos que se utilizan para manejar varias solicitudes. Sería mucho más fácil si entendemos el concepto de controlador de ruta laravel con la ayuda de un ejemplo. Iremos paso a paso para obtener una buena comprensión de los controladores de enrutamiento. Así que aquí vamos con los pasos:

¿Cómo crear un controlador de ruta Laravel?

Estos son algunos de los pasos para crear controladores de enrutamiento laravel que se explican a continuación:

Paso 1: El primer paso sería crear un controlador. Si no está familiarizado con la creación de un controlador, siga los siguientes puntos para crear un controlador; de lo contrario, vaya directamente al paso 2 para Controladores de enrutamiento.

  • Utilice el siguiente comando artesanal para crear el controlador.

Código:

Php artisan make: Controller MyController

  • Se creará el archivo MyController.php cuyo código predeterminado es el siguiente.

Código:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function show($id)
(
//
)
)

Paso 2: Ahora tienes que escribir esta ruta a continuación en el archivo web.php.

Código:

Route::get('/post', ' ');

Aquí, el primer parámetro es la URL a la que desea acceder, y MyController es, obviamente, el nombre de nuestro controlador. El 'show' como puede ver en el archivo MyController.php, es el método. Entonces, @show aquí indica que se llamará al método show () cuando toquemos la URL '/ post'.

Paso 3: ahora puede agregar líneas de codificación como se muestra a continuación.

Código:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
/**
*Display resource
*
*/
public function show($id)
(
//
)
/**
*Display resource listing
*
*/
public function index()
(
//
)
/**
*Editing resource
*
*/
public function edit($id)
(
//
)
)

Paso 4: ahora es el momento de presionar la URL. Obtendrá una salida especificada después de ingresar la URL. Con suerte, hemos cubierto suficientes conocimientos de los controladores para que pueda acceder a su Controlador ahora. Avancemos ahora sobre cómo también podemos pasar datos a nuestra clase de controlador. Nuevamente, sería mucho más fácil si aprendemos a pasar datos a través de parámetros a nuestro controlador con la ayuda de un ejemplo.

Transferencia de datos al controlador

1. Escriba esta ruta a continuación en el archivo web.php:

Código:

Route::get('/post/(id)', ' ');

La única diferencia al definir esta ruta es que esta línea de código también contiene el parámetro 'id' con la URL.

2. Modifique el archivo 'MyController.php' como se muestra a continuación.

Código:

public function show($id)
(
return “ID is :”.$id;
)

Aquí la única diferencia en el método show () es que lo hemos modificado al pasar el parámetro 'id' en el método show ().

3. Nuevamente, presionemos la URL en nuestro navegador. Obtendrá salida dependiendo del parámetro.

Espacios de nombres

Aquí hay información sobre espacios de nombres:

Al definir el método Route :: get () para nuestra clase de controlador, no hay necesidad de mencionar el espacio de nombres completo para el controlador ya que 'RouteServiceProvider' carga casi todos sus archivos de ruta en un grupo de ruta que contiene espacio de nombres. Simplemente necesita especificar esa parte del nombre que vendrá después de App / Http / Controllers.

Por ejemplo, si la ruta completa de la clase de controlador es App / Http / Controllers / User / UsersController, entonces no es necesario mencionar el espacio de nombres completo. Simplemente puede definir la ruta de la siguiente manera:

Código:

Route::get('\user', 'User\ ');

Controlador de acción individual

Si desea definir el controlador de acción única, podrá hacerlo colocando un único método '__invoke' en su controlador. Se dice que PHP tiene algunas funciones increíblemente mágicas y la función '__invoke' hace que esté a la altura de esa lista mágica. Con la ayuda de esta función mágica '__invoke', puede definir la clase usando solo una función PHP '__invoke' dentro de ella, y en cualquier momento cuando se llame al objeto, a su vez llamará directamente al método '__invoke' sin siquiera tener que hacerlo manualmente llamado $ obj-> randomFunction ().

Ahora surge la pregunta, ¿dónde puedes usarlo? Es justo que nuestra psicología haga esta pregunta cada vez que encontremos alguna funcionalidad nueva. Como ejemplo, esto se puede usar al implementar SRP (Principio de responsabilidad única). Al igual que hicimos un controlador arriba usando el comando artisan, de manera similar usando php artisan: make controller MyController, la codificación del archivo MyController se verá como se muestra a continuación:

Código:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)

Somos buenos para agregar líneas de código para el método __invoke () en la clase MyController. Aquí hay un ejemplo de cómo se verá la clase después de agregar código.

Código:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function __invoke($id)
(
return “ID is :”.$id;
)
)

Ahora, el archivo web.php necesita ser modificado ya que es el único responsable de todo el manejo de la acción. La línea de código se verá así:

Código:

Route::get('/post/(id)', 'MyController');

Esta línea de código tocará la función '__invoke ()' de nuestra clase MyController. De aquí se puede concluir que no necesariamente tiene que escribir la función @invoke para acceder a los controladores de acción única.

Nota: en caso de que no especifique ninguna acción, es decir, no escriba el método __invoke (), arrojará un error de acción de ruta no válida, es decir, UnexpectedValueExpression.

Ideas para crear rutas de Laravel

Cada ruta en Laravel se define en archivos de ruta. Estos archivos de ruta se pueden encontrar en el subdirectorio de rutas. No es necesario cargar manualmente estos archivos, ya que el marco de trabajo de Laravel los carga automáticamente. El archivo de ruta de su aplicación se almacena en el archivo 'app / Http / routes.php'. El enrutamiento general para cualquier solicitud en Laravel se ve así:

Código:

Route::get ('/', anyFunction() (
return 'This is Index';
));

Código:

Route::post ('user/dashboard', anyFunction() (
return 'This is Dashboard';
));

Mecanismo de enrutamiento

El mecanismo de enrutamiento se puede entender con los siguientes tres pasos:

  • En primer lugar, cree una URL raíz y ejecútela.
  • Asegúrese de que su URL coincida con los métodos del archivo root.php, solo entonces se ejecutarán todas las funciones relacionadas.
  • La función primero invoca archivos de plantilla y luego se llama a la función view () con un nombre de archivo en resources / views /.

Conclusión

Afortunadamente, hasta ahora hemos aprendido un buen número de conceptos del controlador de ruta Laravel que le permitirán crear su propio controlador de enrutamiento Laravel para su aplicación, que será seguro y potente al mismo tiempo.

Artículos recomendados

Esta es una guía para el controlador de ruta Laravel. Aquí discutimos los datos que pasan al controlador, espacios de nombres, controlador de acción única y varios pasos para crear un Laravel. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. ¿Qué es laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Comandos Laravel