Laravel - Roteamento

No Laravel, todas as solicitações são mapeadas com o auxílio de rotas. O roteamento básico roteia a solicitação para os controladores associados. Este capítulo discute o roteamento no Laravel.

O roteamento no Laravel inclui as seguintes categorias -

  • Roteamento Básico
  • Parâmetros de rota
  • Rotas Nomeadas

Roteamento Básico

Todas as rotas do aplicativo são registradas no app/routes.phpArquivo. Este arquivo diz ao Laravel para quais URIs ele deve responder e o controlador associado fará uma chamada particular. O exemplo de rota para a página de boas-vindas pode ser visto conforme mostrado na captura de tela fornecida abaixo -

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

Exemplo

Observe o exemplo a seguir para entender mais sobre roteamento -

app/Http/routes.php

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

resources/view/welcome.blade.php

<!DOCTYPE html>
<html>
   <head>
      <title>Laravel</title>
      <link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet" 
         type = "text/css">
      
      <style>
         html, body {
            height: 100%;
         }
         body {
            margin: 0;
            padding: 0;
            width: 100%;
            display: table;
            font-weight: 100;
            font-family: 'Lato';
         }
         .container {
            text-align: center;
            display: table-cell;
            vertical-align: middle;
         }
         .content {
            text-align: center;
            display: inline-block;
         }
         .title {
            font-size: 96px;
         }
      </style>
   </head>
   
   <body>
      <div class = "container">
         
         <div class = "content">
            <div class = "title">Laravel 5.1</div>
         </div>
			
      </div>
   </body>
</html>

O mecanismo de roteamento é mostrado na imagem abaixo -

Vamos agora entender as etapas envolvidas no mecanismo de roteamento em detalhes -

Step 1 - Inicialmente, devemos executar a URL raiz da aplicação.

Step 2 - Agora, o URL executado deve corresponder ao método apropriado no route.phpArquivo. No caso presente, deve corresponder ao método e ao URL raiz ('/'). Isso executará a função relacionada.

Step 3 - A função chama o arquivo de modelo resources/views/welcome.blade.php. Em seguida, a função chama o view() função com argumento ‘welcome’ sem usar o blade.php.

Isso produzirá a saída HTML conforme mostrado na imagem abaixo -

Parâmetros de rota

Às vezes, no aplicativo da web, pode ser necessário capturar os parâmetros passados ​​com o URL. Para isso, você deve modificar o código emroutes.php Arquivo.

Você pode capturar os parâmetros em routes.php arquivo de duas maneiras, conforme discutido aqui -

Parâmetros Requeridos

Esses parâmetros são aqueles que devem ser obrigatoriamente capturados para o roteamento da aplicação web. Por exemplo, é importante capturar o número de identificação do usuário no URL. Isso pode ser possível definindo os parâmetros da rota conforme mostrado abaixo -

Route::get('ID/{id}',function($id) {
   echo 'ID: '.$id;
});

Parâmetros Opcionais

Às vezes, os desenvolvedores podem produzir parâmetros como opcionais e isso é possível com a inclusão de ?após o nome do parâmetro no URL. É importante manter o valor padrão mencionado como um nome de parâmetro. Veja o exemplo a seguir que mostra como definir um parâmetro opcional -

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

O exemplo acima verifica se o valor corresponde a TutorialsPoint e, portanto, encaminha para o URL definido.

Rotas Nomeadas

As rotas nomeadas permitem uma maneira conveniente de criar rotas. O encadeamento de rotas pode ser especificado usando o método de nome na definição de rota. O código a seguir mostra um exemplo de criação de rotas nomeadas com controlador -

Route::get('user/profile', '[email protected]')->name('profile');

O controlador do usuário irá chamar para a função showProfile com parâmetro como profile. Os parâmetros usamname método na definição de rota.