首页 > 解决方案 > 在 Symfony 5 中将数据从表单渲染到另一个视图

问题描述

我在 Symfony 5 中制作了几个贷款计算器,都在我的控制器 SimulatorController 中。用户正在视图 1 中填写/提交表单,并应登陆显示计算结果的视图 2,以及在表单中输入的数据的 recpa。

所以我的控制器中有第一个函数,它创建计算表单,进行一些计算,将表单渲染到视图 1 并在提交表单后重定向到视图 2:


 #[Route('/rachat-credits', name: 'app_rachat')]
    public function rachat(Request $request)
    {
        // Debts rate
        $form = $this->createForm(SimulDebtFormType::class);
        $debtForm = $form->handleRequest($request);

        if($debtForm->isSubmitted() && $debtForm->isValid()){

            $wages = $debtForm->get('salaries')->getdata();
            $bonuses = $debtForm->get('bonuses')->getdata();
            $earnings = $debtForm->get('earnings')->getdata();
            $expenses = $debtForm->get('expenses')->getdata();
            $totalIncome = intval($wages + $bonuses + $earnings);
            $rate = floatval($expenses/$totalIncome*100);
            $debtRate = number_format($rate, 2,',',' ');
            $rest = $totalIncome - $expenses;
            $restToLive = number_format($rest,0,'',' ');

            return $this->redirectToRoute('app_simul_res_endet');
        }

        return $this->render('Simul/rachat.html.twig', [
            'debtrateform' => $debtForm->createView(),            
        ]);
    }

还有一个渲染 View 2 的函数,它显示前一个表单的结果并在其上创建一个联系表单。

我没有设法将检索和计算的数据传递到视图 2,我尝试将数组中的参数输入到 redirectToRoute() 中,例如:

return $this->redirectToRoute('app_simul_res_endet', [
   'debtRate' => $debtRate,
   'restToLive' => $restToLive,
   'totalIncome' => $totalIncome,
   'expenses' => $expenses,
]);

但 View 2 无法识别变量。

<div class="row justify-content-evenly align-items-center text-center fw-bold m-3 endettement">
    <div class="col-sm-6 col-md-4 rounded-3 p-4 mb-4 data">
        <div class="row justify-content-around align-items-center fw-bold">
            <div class="col-10 text-start">
                <p>Mes revenus mensuels</p>
                <p>Mes charges mensuelles</p>
            </div>
            <div class="col-1 text-end figures">
                <p>{{ totalIncome }}€&lt;/p>
                <p>{{ expenses }}€&lt;/p>
            </div>
        </div>
    </div>
    <div class="col-sm-6 col-md-4 results rounded-3 p-4">
        <h3>Estimation de votre 
            taux d'endettement*</h3>
        <h3 class="mensualite">{{ debtRate }}%</h3>
        <h3 class="mt-4">Reste à vivre*</h3>
        <h3 class="mensualite">{{ restToLive }}€&lt;/h3>
        <a href="{{ path('app_simul_endet') }}"><button class="btn ctaWhite text-uppercase rounded-pill mt-4">Recalculer</button></a>
    </div>
</div>

任何人都对如何进行有线索或建议?

标签: formssymfonyviewcalculatorsymfony5

解决方案


推荐阅读