如何在 Symfony 中调用从网站删除按钮

问题描述 投票:0回答:1

我在我的项目中使用 Symfony,我希望在数据附近有一个按钮,您可以在其中从数据库中删除条目。 我尝试使用树枝扩展,但感觉这不是正确的方法。 有什么想法吗?

HTML

<script>
        function test() {
            {{ deleteTicket() }};
        }
    </script>

{% for form in myForm %}
        <h3>Task</h3>
        {{ form.data.text }}
        <h3>Priority</h3>
        {{ form.data.dropdown }}

        <button onclick="test()" class="btn btn-primary">delete</button>

    {% endfor %}

树枝扩展

public function deleteTicket(DynamicRepository $formRepository)
    {
        $user = $this->getUser();
        $myForm = $formRepository->findBy(['creator' => $user]);
        $em = $this->getDoctrine()->getManager();
        $em->remove($myForm);
        $em->flush();
        return $this->redirectToRoute('app_form_data');
    }
symfony twig
1个回答
0
投票

首先检查symfony表单文档,您将看到如何正确创建表单,如何添加表单字段,渲染以及如何管理数据。

我建议你这样做:

1 - 使用您的输入创建表单类

class TaskType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('text', TextType::class)
            ->add('dropdown', DateType::class)
            ->add('delete', SubmitType::class)
        ;
    }
}

2 - 渲染表单,这是您当前正在做的事情。

3 - 点击删除按钮后处理提交的数据。

public function delete(Request $request): Response { // just set up a fresh $task object (remove the example data) $task = new Task(); $form = $this->createForm(TaskType::class, $task); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { // $form->getData() holds the submitted values // but, the original `$task` variable has also been updated $task = $form->getData(); // your code to remove $em = $this->getDoctrine()->getManager(); $em->remove($task); $em->flush(); return $this->redirectToRoute('task_success'); } return $this->render('task/new.html.twig', [ 'form' => $form, ]); }
    
© www.soinside.com 2019 - 2024. All rights reserved.