Controladores de recursos de Laravel

Controladores de recursos de Laravel
Um controlador de recursos é usado no Laravel para executar operações CRUD facilmente. Quando você criar um controlador de recursos usando o comando artesan do terminal, ele criará todos os métodos necessários dentro do controlador relacionado às operações da CRUD. Ele lida com todas as solicitações HTTP para o aplicativo e requer uma única linha de código para rotas CRUD. Como você pode criar um controlador de recursos e executar operações CRUD no Laravel são mostradas neste tutorial.

Pré -requisito:

Você precisará de uma tabela no banco de dados em que o projeto Laravel esteja conectado. Você pode criar uma tabela com o comando migrar ou manualmente. Eu usei o Usuários tabela neste tutorial para fazer a operação CRUD usando o controlador de recursos. A tabela está vazia agora. A estrutura da tabela é mostrada abaixo.

Crie um controlador de recursos:

Execute o seguinte comando do terminal para criar o controlador de recursos nomeado UserController.

$ php artesan make: controller userController -Resource

Se você abrir o controlador de qualquer editor, verá os seguintes códigos já foram escritos no controlador. Sete métodos são criados dentro do controlador automaticamente para fazer as operações CRUD.

namespace app \ http \ controladores;
use iluminado \ http \ request;
classe UserController estende o controlador

/**
* Exibir uma lista do recurso.
*
* @return \ iluminate \ http \ resposta
*/
Índice de função pública ()

//

/**
* Mostre o formulário para criar um novo recurso.
*
* @return \ iluminate \ http \ resposta
*/
Função pública Criar ()

//

/**
* Armazene um recurso recém -criado em armazenamento.
*
* @param \ iluminate \ http \ request $ solicitação
* @return \ iluminate \ http \ resposta
*/
loja de funções públicas (solicitação $ solicitação)

//

/**
* Exibir o recurso especificado.
*
* @param int $ id
* @return \ iluminate \ http \ resposta
*/
Função pública mostra ($ id)

//

/**
* Mostre o formulário para editar o recurso especificado.
*
* @param int $ id
* @return \ iluminate \ http \ resposta
*/
Edição de função pública ($ id)

//

/**
* Atualize o recurso especificado no armazenamento.
*
* @param \ iluminate \ http \ request $ solicitação
* @param int $ id
* @return \ iluminate \ http \ resposta
*/
Atualização da função pública (solicitação $ solicitação, $ id)

//

/**
* Remova o recurso especificado do armazenamento.
*
* @param int $ id
* @return \ iluminate \ http \ resposta
*/
Função pública Destrua ($ id)

//

Rotas de recursos:

Adicione a seguinte rota para o UserController Para criar rotas de recursos em a teia.php arquivo.

Route :: Resource ('Usuários', 'UserController');

Agora, execute o seguinte comando do terminal para verificar a lista de rota atual do rede.php arquivo.

$ php Artisan Route: List

As informações da rota a seguir são geradas para usar o método Route :: Resource (). Sete rotas são criadas para chamar sete métodos. Os usos dessas rotas são explicados mais adiante na próxima parte deste tutorial.

Adicione as seguintes linhas no início do UserController.php arquivo para importar o modelo de usuário, serviço de hash para hash da senha e serviço de banco de dados para operações de banco de dados.

use app \ user;
usar hash;
Use db

Inserir registro:

Modifique o criar() método de UserController Com o seguinte código. Aqui, um objeto do Do utilizador O modelo é criado para inserir os novos registros. Depois de atribuir os valores obrigatórios, o salvar() A função é chamada para inserir o novo registro no alunos mesa.

Função pública Criar ()

$ user = novo usuário;
$ user-> nome = 'fahmida';
$ user-> email = '[email protected] ';
$ user-> senha = hash :: make ('12345');
tentar
$ user-> save ();
eco "registro é inserido";

Catch (\ Illuminate \ Database \ QueryException $ e)
eco "entrada duplicada";

A rota para chamar de criar() método de UserController é 'usuários/crie'. Execute o seguinte URL do navegador. Se o registro for inserido corretamente, a seguinte saída aparecerá.

http: // localhost/laravelpro/public/users/crie

Agora, se a tabela verifique a tabela do banco de dados, você obterá a seguinte saída.

Veja todos os registros:

Modifique o índice() método de UserController com o código a seguir para recuperar todos os registros do Usuários tabela e exibir os valores de nome e e-mail.

Índice de função pública ()

$ usuários = db :: select ('selecione * de usuários');
foreach ($ usuários como $ usuário)

eco "nome: $ user-> nome";
eco "
E-mail: $ usuário-> email ";

A rota para chamar de índice() método de UserController é 'Usuários'. Execute o seguinte URL do navegador.

http: // localhost/laravelpro/public/usuários

A seguinte saída será exibida.

Selecione registro específico:

Modifique o mostrar() método de UserController com o seguinte código para recuperar um registro do Usuários tabela que contém 1 no eu ia campo e exibir o valor do nome.

Função pública mostra ($ id)

$ user = db :: select ('Selecione * de usuários onde id ='.$ id);
eco "o nome do usuário é". $ user [0]-> nome."
";

A rota para chamar de mostrar() método de UserController é 'usuários/id'. Execute o seguinte URL do navegador.

http: // localhost/laravelpro/public/usuários/1

A seguinte saída será exibida.

Atualizar registro:

Dois métodos são definidos principalmente no controlador de recursos para atualizar um registro de banco de dados. Estes são editar() e atualizar() onde os dados das atualizações registradas usando qualquer formulário editado. Mas nenhum formulário de edição é usado aqui. Então, apenas o editar() o método é usado para atualizar um registro específico do alunos mesa. O valor atual de um registro específico é impresso antes e depois de executar a consulta de atualização.

Edição de função pública ($ id)

$ user = db :: select ('Selecione * de usuários onde id ='.$ id);
eco "o e -mail atual do usuário é". $ user [0]-> email."
";
$ email = '[email protected] ';
$ user = db :: select ("Usuários de atualização definem email = '$ email'wherethe e -mail do usuário após a atualização é". $ user [0]-> email;

A rota para chamar de editar() método de UserController é 'usuários/id/editar'. Execute o seguinte URL do navegador.

http: // localhost/laravelpro/public/usuários/1/editar

A seguinte saída será exibida.

Apagar registro:

Método Destroy () é definido para excluir qualquer registro da tabela. Mas a rota para excluir o registro passa de outro método. Aqui, eu usei o mostrar() método para criar um hiperlink para excluir o registro que é adicionado no final do método.

Função pública mostra ($ id)

$ user = db :: select ('Selecione * de usuários onde id ='.$ id);
eco "o nome do usuário é". $ user [0]-> nome."
";
eco ".url ('/')."/Usuários/delete/".$ id."'> Excluir";

Adicione o seguinte código no destruir() Método para excluir um registro específico.

Função pública Destrua ($ id)

$ user = db :: select ('exclua dos usuários onde id ='.$ id);
eco "o registro é excluído";

Adicione a rota em rede.php Arquive para ligar para o destruir() método.

Rota :: get ('/users/delete/id', 'userController@Destroy');

Depois de clicar no link de exclusão, a seguinte saída será exibida.

Conclusão:

O uso do controlador de recursos e o conceito de recurso de rota são explicados em detalhes neste tutorial usando uma operação CRUD. Espero que ajude os novos usuários do Laravel a implementar a operação CRUD facilmente em seu projeto.