forms - 在 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 }}€</p>
<p>{{ expenses }}€</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 }}€</h3>
<a href="{{ path('app_simul_endet') }}"><button class="btn ctaWhite text-uppercase rounded-pill mt-4">Recalculer</button></a>
</div>
</div>
任何人都对如何进行有线索或建议?
解决方案
推荐阅读
- node.js - NodeJS jsmodbus 包 - readHoldingRegisters:预期浮点数
- sql-server - SQL Server 分区
- c# - 带有列表和其他对象的 xml 序列化程序
- java - 在远程机器上轻松部署基于 jvm 的 Web 服务器
- jquery - NW.js - 未捕获的错误:Bootstrap 的 JavaScript 需要 jQuery
- javascript - Angular 6 - 如何使用动态创建的 DIV 作为 ViewContainerRef
- doxygen - 如何在不同的操作系统中使用一个 Doxygen 配置
- r - 在 r 中结合 yymmdd 和小时值
- matlab - 使用 mexcuda ubuntu 时出现未定义的引用错误
- typescript - 导入 fecha 不能与 TypeScript 中的 Jest 结合使用