Laravel - Роутинг: Пособие для начинающих

Здравствуйте, начинающие разработчики Laravel! Сегодня мы отправимся в увлекательное путешествие по миру Laravel роутинга. Как ваш доброжелательный компьютерный учитель, я проведу вас через этот fundamental concept, обеспечивая, чтобы вы понимали каждый шаг на пути. Так что возьмите чашечку кофе (или чая, если это ваше дело) и погружайтесь с мной!

Laravel - Routing

Что такое роутинг?

Прежде чем мы начнем, давайте поймем, что же такое роутинг на самом деле. Представьте, что вы находитесь в большой библиотеке (Интернет) и хотите найти конкретную книгу (веб-страницу). Библиотекарь (роутер) помогает вам найти exactную книгу, которую вы ищете. В веб-разработке роутинг resembles этого библиотекаря, направляя веб-запросы в правильные части вашего приложения.

Основы роутинга

Давайте начнем с основ. В Laravel роутинг обрабатывается в файле routes/web.php. Это место, где мы tell nuestro aplicación cómo responder a diferentes solicitudes de URL.

Простая route

Вот simplest forma de una ruta:

Route::get('/', function () {
return 'Hello, World!';
});

Давайте разберем это:

  • Route::get() dice a Laravel que responda a una solicitud GET.
  • El primer parámetro '/' es la ruta URL (en este caso, la página de inicio).
  • El segundo parámetro es una función que devuelve lo que debe enviarse de vuelta al navegador.

Cuando visite la página de inicio de su sitio web, verá "Hello, World!" mostrado.

Рuta a una Vista

A menudo, en lugar de solo devolver texto, queremos devolver una página HTML completa. Laravel facilita esto:

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

Эта route devolverá la vista welcome cuando alguien visite /welcome. Las vistas son plantillas HTML almacenadas en el directorio resources/views.

Рuta con Controlador

A medida que su aplicación crece, desea usar controladores para organizar mejor su código:

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

Esta ruta dice a Laravel que llame al método index en el UserController cuando alguien visite /users.

Parámetros de Ruta

Ahora, hagamos las cosas más interesantes. ¿Qué pasaría si quisieramos manejar segmentos dinámicos en nuestras URLs?

Parámetros Básicos

Route::get('/user/{id}', function ($id) {
return 'User '.$id;
});

Esta ruta coincidirá con URLs como /user/1, /user/2, etc. El {id} en la URL se convierte en una variable que se pasa a la función.

Parámetros Opcionales

A veces, un parámetro puede ser opcional. También podemos manejar esto:

Route::get('/user/{name?}', function ($name = 'John') {
return 'Hello, '.$name;
});

Esta ruta funcionará tanto para /user como para /user/Jane. Si no se proporciona ningún nombre, se establece predeterminado en 'John'.

Restricciones de Parámetros

También podemos agregar restricciones a nuestros parámetros usando expresiones regulares:

Route::get('/user/{id}', function ($id) {
return 'User '.$id;
})->where('id', '[0-9]+');

Esta ruta solo coincidirá si el id está compuesto por uno o más dígitos.

Rutas con Nombre

Las rutas con nombre le permiten referirse a las rutas por un nombre en lugar de su URL. Esto es particularmente útil cuando necesita generar URLs o redirecciones en su aplicación.

Definir una Ruta con Nombre

Route::get('/user/profile', function () {
//
})->name('profile');

Usar una Ruta con Nombre

Una vez que se ha nombrado una ruta, puede generar URLs o redirecciones para la ruta de la siguiente manera:

// Generando una URL...
$url = route('profile');

// Generando una redirección...
return redirect()->route('profile');

Esto es extremadamente útil porque si alguna vez necesita cambiar la URL de la página de perfil, solo necesita cambiarla en un lugar (la definición de la ruta), y todas las referencias a la ruta con nombre automáticamente usarán la nueva URL.

Grupos de Rutas

A medida que su aplicación crece, es posible que se encuentre aplicando el mismo middleware o prefijo a un grupo de rutas. Laravel le permite agrupar estas rutas:

Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', function () {
// Requiere autenticación...
});

Route::get('/account', function () {
// Requiere autenticación...
});
});

Esto aplica el middleware auth a ambas rutas /dashboard y /account.

Métodos de Ruta

Laravel admite el enrutamiento para todos los verbos HTTP estándar. Aquí hay una tabla de referencia rápida:

Verbo HTTP Método de Ruta
GET Route::get()
POST Route::post()
PUT Route::put()
PATCH Route::patch()
DELETE Route::delete()
OPTIONS Route::options()

Incluso puede responder a varios verbos HTTP con una sola ruta:

Route::match(['get', 'post'], '/', function () {
//
});

Route::any('/', function () {
//
});

Y ahí lo tienes! Acabas de dar tus primeros pasos en el mundo del enrutamiento de Laravel. Recuerda, la práctica hace al maestro, así que no tengas miedo de experimentar con diferentes rutas y ver qué pasa.

Antes de despedirme, aquí tienes un chiste de enrutamiento para ti: ¿Por qué el desarrollador se quedó sin dinero? ¡Porque usó todo su caché! ?

¡Feliz programación, y que tus rutas siempre te lleven a donde quieres ir!

Credits: Image by storyset