Symfony 无数据库实体
我使用的是symfony2.7.x 我的目标: 1/用户选择图形的表格 2/提交表格 3/借助提交的数据计算一些东西 4/显示值 然后我想创建一个表单,一个实体,但我不需要任何数据库Symfony 无数据库实体,symfony,Symfony,我使用的是symfony2.7.x 我的目标: 1/用户选择图形的表格 2/提交表格 3/借助提交的数据计算一些东西 4/显示值 然后我想创建一个表单,一个实体,但我不需要任何数据库 <?php namespace RD\FicheBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Response; use S
<?php
namespace RD\FicheBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use RD\FicheBundle\Entity\Donnees;
use RD\FicheBundle\Form\DonneesType;
class ThController extends Controller
{
// ... code
public function calculsAction(Request $request)
{
$donnees = new Donnees();
$form = $this->get('form.factory')->create(new DonneesType(), $donnees);
$form->handleRequest($request);
if ($form->isValid())
{
// What should I use right here to get my data from the form?
// ???????????????????????
// My calculation
$monney= $log_num*$surf_num*$ann_num*$chauff_num*$del_num;
$CO2 = 200*$log_num*$surf_num*$ann_num*$chauff_num*$del_num;
// Getting back the data to the template to display them
return $this->render('RDFicheBundle:Th:calculs.html.twig', array(
'form' => $form->createView(),
'monney' => $monney,
'CO2' => $CO2
));
}
// ... code
}
}
?>
如何在不使用数据库的情况下从表单中获取数据?我应该使用实体吗?如果你不告诉表单管理员,他们就不需要任何存储/数据库层。(与字段类型类似:实体和其他字段上的选项。) 就你而言: 从已提交(或未提交)的表单中获取数据非常简单
$form->getData()
如果在$form->handleRequest($request)之后执行此操作代码>行,您将获得提交的数据
您还可以检查表单是否随$form->isSubmitted()
一起提交,后者返回布尔值true/false
如果希望表单将提交的数据填充到关联实体(对象),只需在表单类型中设置data\u class
,如下所示
/**
* @inheritdoc
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Acme\AppBundle\Entity\Example'
]);
}
如果有更复杂的场景,还可以为表单的单独字段(类型)设置data_class选项
这些文档应该可以帮助您:
在这里,您还可以看到表单不会自动持久化到db:
$donnees
包含更新的数据(它是从$form->getData()返回的数据)。您只需要做与通常相同的事情,只是不坚持模型。