Como acompanhamento da criação de novas notas usando formulários e métodos de solicitação, exploraremos agora como editar e atualizar notas existentes no banco de dados usando o método de solicitação PATCH.
Quando um usuário deseja editar uma nota, precisamos fornecer uma maneira para ele acessar a tela de edição. É aqui que entra o botão de edição.
Primeiro, precisamos adicionar um botão de edição abaixo da nota na tela de nota única em show.view.php removendo o código do botão de exclusão do arquivo. Este botão moverá o usuário para a tela de edição.
O botão de edição é colocado na seção de rodapé da página de exibição de notas. Ao ser clicado, redireciona o usuário para a tela de edição, passando o ID da nota como parâmetro na URL.
O arquivo edit.php controla o processo de edição. Ele recupera a nota do banco de dados e autoriza o usuário a editá-la. Se o usuário estiver autorizado, a tela de edição será exibida, permitindo que o usuário faça alterações na nota.
query('select * from notes where id = :id', [ 'id' => $_GET['id'] ])->findOrFail(); authorize($note['user_id'] === $currentUserId); view("notes/edit.view.php", [ 'heading' => 'Edit Note', 'errors' => [], 'note' => $note ]);
O arquivo edit.php usa a classe Database para recuperar a nota do banco de dados. Em seguida, verifica se o usuário está autorizado a editar a nota comparando o user_id com o currentuserID. Se autorizado, a tela de edição será exibida.
O arquivo edit.view.php contém o código para exibir o corpo da nota para edição, com dois botões: Atualizar e Cancelar.
Botão Atualizar: envia a nota atualizada ao servidor e armazena-a no banco de dados
Botão Cancelar: cancela o processo de edição e redireciona o usuário de volta para a tela de notas.
= $errors['body'] ?>
A visualização de edição da nota exibe o corpo da nota em uma área de texto, permitindo ao usuário fazer alterações. O botão de atualização envia a nota atualizada ao servidor e a armazena no banco de dados.
Para atualizar uma nota, precisamos criar um novo arquivo chamado update.php que verifica a validação da nota e também verifica a autorização do usuário. Este arquivo permitirá apenas que usuários autorizados visualizem e editem notas que já estão presentes no banco de dados.
query('select * from notes where id = :id', [ 'id' => $_POST['id'] ])->findOrFail(); // Check authorization authorize($note['user_id'] === $currentUserId); // Check validation $errors = []; if (!Validator::string($_POST['body'], 1, 100000)) { $errors['body'] = 'A body of no more than 1,000 characters is required.'; } // if no validation errors, then update if (count($errors)) { return view('notes/edit.view.php', [ 'heading' => 'Edit Note', 'errors' => $errors, 'note' => $note ]); } $db->query('update notes set body = :body where id = :id', [ 'id' => $_POST['id'], 'body' => $_POST['body'] ]); // redirect the user header('location: /notes'); die();
Para habilitar a edição e atualização de notas, precisamos adicionar as seguintes rotas em route.php:
$router->get('/note/edit', 'controllers/notes/edit.php'); $router->patch('/note', 'controllers/notes/update.php');
Essas rotas permitirão a edição e atualização de notas usando o método de solicitação PATCH.
Quando um usuário deseja editar uma nota, o usuário será levado à tela de edição, onde poderá fazer alterações na nota. Quando um usuário enviar alterações, o arquivo update.php será chamado. Este arquivo irá verificar se o usuário está autorizado a editar a nota e se a validação da nota está correta. Se ambas as verificações forem aprovadas, a nota será atualizada no banco de dados e o usuário será redirecionado de volta para a tela de notas. Se alguma das verificações falhar, o usuário será redirecionado de volta à tela de edição com mensagens de erro.
Seguindo estas etapas, um usuário pode editar e atualizar facilmente a nota usando o método de solicitação PATCH.
Espero que você tenha entendido claramente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3