gpt4 book ai didi

symfony - 没有数据库的实体

转载 作者:行者123 更新时间:2023-12-04 08:49:14 27 4
gpt4 key购买 nike

我正在使用 Symfony 2.7.x

我的目标:

1/用户选择图形的表单

2/表单提交

3/在提交的数据的帮助下计算一些东西

4/显示值

然后我想创建一个表单,一个实体,但我不需要任何数据库。

<?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() 提交,它返回一个 bool 值 true/false。

如果你想让你的表单将提交的数据填充到关联的实体(对象),你只需要像这样在你的表单类型中设置data_class

/**
* @inheritdoc
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Acme\AppBundle\Entity\Example'
]);
}

如果您遇到更复杂的情况,也可以为表单的单独字段(类型)设置 data_class 选项。

这些文档应该可以帮助您: http://symfony.com/doc/current/book/forms.html#creating-form-classes

同样在这里您可以看到表单不会自动保存到数据库: http://symfony.com/doc/current/book/forms.html#forms-and-doctrine

关于symfony - 没有数据库的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33251322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com