bens

Laravel: introdução ao roteamento laravel

O roteamento no Laravel permite aos usuários rotear todas as solicitações do aplicativo para o controlador apropriado. A maioria das rotas primárias no Laravel reconhecem e aceitam um Identificador Uniforme de Ativos junto com um encerramento, fornecendo uma forma simples e expressiva de roteamento.

O que é uma rota (rota) ?

O caminho é uma maneira de criar uma URL de solicitação para seu aplicativo. Esses URLs não precisam ser associados a arquivos específicos em um site e são legíveis por humanos e otimizados para SEO.

No Laravel, os caminhos são criados dentro da pasta le routes. Eles são criados no arquivo web.php para sites e dentro api.php para APIs.

Estes route são atribuídos ao grupo middleware rede, destacando o status e a segurança da sessão CSRF. As rotas em route/api.php eles não têm estado e são atribuídos ao grupo de middleware da API.
A pré-instalaçãodefiO Laravel nita vem com dois caminhos, um para a web e outro para a API. É assim que o caminho para a web se parece web.php:

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

O que é uma rota no Laravel?

Todos os caminhos do Laravel são definiti nos arquivos de caminho localizados dentro do diretório routes. O aplicativo de gerenciamento de rotas, defifinalizado no arquivo App\Providers\RouteServiceProvider, cuida do alinhamento automático desses arquivos. O arquivo route/web.php defifinaliza os caminhos para sua interface web.

você pode defiTermine um caminho para esta ação do controlador da seguinte maneira:

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: o método Route::resource produz todos os caminhos básicos necessários para um aplicativo e é gerenciado por meio da classe controladora.

Quando uma solicitação corresponde ao URI de rota especificado, o método é invocado show defifinalizado no controlador App\Http\ControllersUserController, passando os parâmetros de rota para o método.

Para recursos, você precisa fazer duas coisas no aplicativo Laravel. Primeiro, você precisa criar um caminho de recurso em Laravel que fornece caminhos de inserção, atualização, visualização e exclusão. Em segundo lugar, crie um controlador de recursos que forneça um método para inserir, atualizar, visualizar e excluir.

A pré-instalaçãodefiO Laravel nita vem com dois caminhos: um para a web e outro para a API. Aqui está a aparência da rota para web em web.php:

Route::get(‘/’, function () {

return view(‘welcome’);

});

Middleware Laravel atua como uma ponte entre o pedido e a reação. Pode ser algum tipo de componente de filtro.

Laravel trabalhar com um middleware que tem a função de confirmar se a aplicação cliente é verificada ou não. Caso o cliente seja confirmado, o roteamento redireciona para a página inicial ou para uma página de login.

Os métodos para o route

O código anterior defitermina um caminho para a página inicial. Sempre que esta rota receber uma requisição get para /, retornará o view welcome

Todos os caminhos do Laravel são definiti em seu routing, que estão localizados dentro do diretório dei routes. Consequentemente, l'AppProvidersRouteServiceProvider do aplicativo alinha esses registros. O arquivo route/web.php contém as rotas que são gerenciadas para sua interface web.

A estrutura do caminho é muito simples. Abra o arquivo apropriado (`web.phpo `api.php) e inicie a linha de código com `Route:: `, seguido da solicitação que você deseja atribuir a essa rota específica e, em seguida, especifique a função que será executada após a solicitação.

O Laravel oferece os seguintes métodos de caminho:

  • get
  • post
  • put
  • delete
  • patch
  • options

os caminhos são definited em Laravel dentro da classe Route com HTTP, a rota para responder e fechar, ou o controlador.

Como criar caminhos no Laravel

Vamos ver como você pode criar seus próprios caminhos no Laravel.

Um caminho GET básico

Agora vou criar um caminho básico que imprimirá a tabuada de 2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

No código acima, criei um caminho de solicitação GET para a URL /table, que imprimirá a tabuada de 2 na tela.

Agora vamos ver o mesmo código, parametrizando o número para o qual queremos a tabuada:

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

No código o 'number' entre chaves representa o parâmetro, ou seja, o número para o qual a tabuada será calculada. Sempre que uma URL do tipo for especificada /table/n, então a tabela numérica será impressa n.

Existe também a maneira de combinar os dois recursos em um caminho. O Laravel oferece o recurso de parâmetros opcionais que permite adicionar parâmetros opcionais usando o ponto de interrogação '?' após o parâmetro opcional e o valor prédefinoite. Vejamos o exemplo:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

No código acima criamos nosso parâmetro de rota, tornando o número opcional, então se um usuário rotear `/table` então ele irá gerar a tabela de 2 por padrãodefinite e se um usuário rotear para `/table/{number}Então a tabela de números 'number' será produzido.

Expressões regulares como restrições para parâmetros de rota

No exemplo anterior criamos um caminho para gerar a tabuada, mas como garantir que o parâmetro do caminho seja realmente um número, para evitar erros na hora de gerar a tabuada?

No Laravel, você pode defiterminar uma restrição no parâmetro de rota usando o método `where` na instância da rota. o `where` pega o nome do parâmetro e uma expressão regular para esse parâmetro.

Boletim de inovação
Não perca as notícias mais importantes sobre inovação. Cadastre-se para recebê-los por e-mail.

Agora vamos ver um exemplo de restrição para nosso parâmetro `{numero}` para garantir que apenas um número seja passado para a função.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

No código acima, usamos uma expressão regular para o número do caminho. Agora, se um usuário tentar rotear para /mesa/não será mostrado uma exceção NotFoundHttpException.

Roteamento Laravel com função de controle

No Laravel, você pode defiTerminar um método Controller para uma rota. Um método do controlador executa todas as ações definite toda vez que um usuário acessa a rota.
Com o código a seguir, estamos atribuindo o método do controlador 'functionname' para uma rota:

Route:: get ( '/home' , 'YourController@functionname' ) ;

O código começa com `Route::` e, em seguida defifinaliza o método de solicitação para o caminho. Subseqüentemente, defiTermine seu caminho e controlador junto com o método adicionando o símbolo @ antes do nome do método.

Dê um nome ao caminho

No Laravel, você pode defiDê um nome para o seu caminho. Esse nome costuma ser muito útil. Por exemplo, se você deseja redirecionar um usuário de um local para outro, não precisa defiTermine o URL de redirecionamento completo. Você pode apenas dar o nome dele. Você pode defiterminar o nome da rota usando o método `name` na instância da rota.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

Agora, eu poderia regenerar a url para este caminho, através do seguinte código:

$url = route('table');

Da mesma forma, para redirecionar para este URL, a sintaxe correta seria:

return redirect()->route('table');

Route Groups

I Route Groups, literalmente grupos de caminho, é um recurso essencial no Laravel, que permite agrupar caminhos. Os grupos de caminhos são úteis quando você deseja aplicar atributos a todos os caminhos agrupados. Se você usar grupos de caminhos, não precisará aplicar os atributos individualmente a cada caminho; isso evita a duplicação. Ele permite que você compartilhe atributos como middleware o namespacesSem defiterminar esses atributos em cada caminho individual. Esses atributos compartilhados podem ser passados ​​em um formato de array como o primeiro parâmetro para o método Route::group.

Sintaxe de um grupo de rotas

Route::group([], callback);  

pomba []: é uma matriz passada para o método de grupo como o primeiro parâmetro.

Exemplo de Route Group em web.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

No código, defivamos encontrar o método grupo(), que contém os dois parâmetros, ou seja, array e closure. Dentro de closure, Podemos defiterminar quantos route nós queremos. No código acima, temos defiterminou três route.

Se através do navegador acessarmos a URL localhost/myproject/first então o primeiro intervém route digitando no navegador first way route.

Com o URL localhost/myproject/second depois vem o segundo route digitando no navegador second way route.

Enquanto com o URL localhost/myproject/third depois vem o terceiro route digitando no navegador third way route.

Prefixos de Route Groups

Os prefixos de route eles são usados ​​quando queremos fornecer uma estrutura de URL comum a vários route.

Podemos especificar o prefixo para todos os caminhos definites dentro do grupo usando a opção de matriz de prefixo em Route Groups.

Exemplo de web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

O código contém três caminhos que podem ser acessados ​​nas seguintes URLs:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Também podemos atribuir middleware a todas as rotas dentro de um grupo. O middleware deve ser defiterminou antes de criar o grupo. Para ver como fazer isso, leia nosso artigo Laravel middleware como funciona.

exemplo:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

Prefixos de nome de caminho

O método name é usado para prefixar cada nome de route com uma string especificada. no método name, precisamos especificar a string com um caractere à direita no prefixo.

Exemplo web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

Boletim de inovação
Não perca as notícias mais importantes sobre inovação. Cadastre-se para recebê-los por e-mail.

Artigos recentes

A Veeam oferece o suporte mais abrangente para ransomware, desde proteção até resposta e recuperação

A Coveware by Veeam continuará a fornecer serviços de resposta a incidentes de extorsão cibernética. A Coveware oferecerá recursos forenses e de remediação…

Abril 23 2024

Revolução Verde e Digital: Como a Manutenção Preditiva está Transformando a Indústria de Petróleo e Gás

A manutenção preditiva está revolucionando o setor de petróleo e gás, com uma abordagem inovadora e proativa para o gerenciamento de plantas.…

Abril 22 2024

Regulador antitruste do Reino Unido levanta alarme da BigTech sobre GenAI

A CMA do Reino Unido emitiu um alerta sobre o comportamento da Big Tech no mercado de inteligência artificial. Lá…

Abril 18 2024

Casa Green: revolução energética para um futuro sustentável na Itália

O Decreto "Case Green", formulado pela União Europeia para melhorar a eficiência energética dos edifícios, concluiu o seu processo legislativo com…

Abril 18 2024