Introdução ao Laravel Route Controller

Esses controladores permitem criar suas classes de controladores usando métodos usados ​​para lidar com várias solicitações. Seria muito mais fácil se entendermos o conceito de controlador de rota laravel com a ajuda de um exemplo. Iremos passo a passo para obter uma boa compreensão dos controladores de roteamento. Então, aqui vamos nós com as etapas:

Como criar o Laravel Route Controller?

Aqui estão algumas das etapas para criar controladores de roteamento laravel que são explicados abaixo:

Etapa 1: a primeira etapa seria criar um controlador. Se você não estiver familiarizado com a criação de um controlador, siga os pontos abaixo para criar um controlador, caso contrário, vá diretamente para a etapa 2, em Roteamento de controladores.

  • Use o comando artisan abaixo para criar o controlador.

Código:

Php artisan make: Controller MyController

  • O arquivo MyController.php será criado cujo código padrão é o seguinte.

Código:

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

Etapa 2: Agora você deve escrever esta rota abaixo no arquivo web.php.

Código:

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

Aqui, o primeiro parâmetro é o URL ao qual você deseja acessar, e MyController é obviamente o nome do nosso controlador. O 'show', como você pode ver no arquivo MyController.php, é o método Portanto, @show aqui indica que o método show () seria chamado quando atingirmos o URL '/ post'.

Etapa 3: agora você pode adicionar linhas de codificação, como mostrado abaixo.

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)
(
//
)
)

Etapa 4: agora é hora de acessar o URL. Você obterá uma saída especificada após inserir o URL. Felizmente, já cobrimos informações suficientes sobre os controladores para que você possa acessar seu controlador agora. Vamos seguir em frente agora, como também podemos transmitir dados para nossa classe de controladores. Novamente, seria muito mais fácil se aprendermos a passar dados através de parâmetros para o nosso controlador com a ajuda de um exemplo.

Passagem de dados para o controlador

1. Escreva esta rota abaixo no arquivo web.php:

Código:

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

A única diferença na definição dessa rota é que essa linha de código também contém o parâmetro 'id' com a URL.

2. Modifique o arquivo 'MyController.php' como mostrado abaixo.

Código:

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

Aqui, a única diferença no método show () é que o modificamos passando o parâmetro 'id' no método show ().

3. Novamente, vamos clicar no URL em nosso navegador. Você estará obtendo saída, dependendo do parâmetro.

Namespaces

Aqui está uma informação sobre espaços para nome:

Ao definir o método Route :: get () para a nossa classe de controlador, não há necessidade de mencionar o espaço de nomes completo para o controlador, pois 'RouteServiceProvider' carrega quase todos os arquivos de rota em um grupo de rotas que possui um espaço de nome nele. Você só precisa especificar a parte do nome que virá após o App / Http / Controllers.

Por exemplo, se o caminho completo da classe do controlador for App / Http / Controllers / User / UsersController, não será necessário mencionar o espaço para nome completo. Você pode simplesmente definir a rota da seguinte maneira:

Código:

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

Controlador de ação única

Se você deseja definir o controlador de ação única, poderá fazê-lo colocando um único método '__invoke' no seu controlador. Dizem que o PHP tem algumas funções surpreendentemente mágicas e a função '__invoke' faz parte dessa lista mágica. Com a ajuda dessa função mágica '__invoke', você pode definir a classe usando apenas uma função PHP '__invoke' e, a qualquer momento, quando o objeto for chamado, por sua vez, chamará diretamente o método '__invoke' sem precisar manualmente chamado $ obj-> randomFunction ().

Agora surge a pergunta, onde você pode usá-lo? É justo que nossa psicologia faça essa pergunta toda vez que encontrarmos uma nova funcionalidade. Como exemplo, isso pode ser usado durante a implementação do SRP (princípio de responsabilidade única). Como criamos um controlador acima usando o comando artisan, da mesma forma usando o php artisan: make controller MyController, a codificação do arquivo MyController será semelhante à mostrada abaixo:

Código:

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

É bom adicionar linhas de código para o método __invoke () na classe MyController. Aqui está um exemplo de como a classe será exibida após adicionar 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;
)
)

Agora, o arquivo web.php precisa ser modificado, pois é o único responsável por todo o manuseio de ações. A linha de código será mais ou menos assim:

Código:

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

Essa linha de código atingirá a função '__invoke ()' da nossa classe MyController. Conclui-se daqui que você não precisa necessariamente escrever a função @invoke para acessar controladores de ação única.

Nota: Caso você não especifique nenhuma ação, ou seja, não escreva o método __invoke (), ele lançará um erro de Ação de rota inválida, como UnexpectedValueExpression.

Insights para criar rotas do Laravel

Toda rota no Laravel é definida nos arquivos de rota. Esses arquivos de rota podem ser encontrados no subdiretório de rotas. Não há necessidade de carregar manualmente esses arquivos, pois eles são automaticamente carregados pela estrutura do Laravel. O arquivo de rota do seu aplicativo é armazenado no arquivo 'app / Http / routes.php'. O roteamento geral para qualquer solicitação no Laravel é semelhante a:

Código:

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

Código:

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

Mecanismo de roteamento

O mecanismo de roteamento pode ser entendido com três etapas a seguir:

  • Primeiro, crie um URL raiz e execute-o.
  • Verifique se o seu URL corresponde aos métodos no arquivo root.php, somente então todas as funções relacionadas serão executadas.
  • A função primeiro chama os arquivos de modelo e, em seguida, a função view () é chamada com um nome de arquivo em resources / views /.

Conclusão

Felizmente, até agora aprendemos um número razoável de conceitos do Laravel Route Controller que permitirão criar seu próprio controlador de roteamento Laravel para a sua aplicação, que será seguro e poderoso ao mesmo tempo.

Artigos recomendados

Este é um guia para o Laravel Route Controller. Aqui discutimos os dados que passam para o controlador, namespaces, controlador de ação única e várias etapas para criar um Laravel. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. O que é o Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Comandos do Laravel