- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正尝试在 Symfony 3.2.4 和 PHP 5.6.28 中为我的应用程序创建动态调查/表单包
我有 3 个实体:调查/问题/答案
第一步是为每个用户创建一个调查。问题必须与相关的答案字段一起显示在前面。提交时,它们将存储在经典数据库中。
问题已经存储在 DB Question.table 中。
我想让表单正常工作。显示存储在数据库中的所有问题并提交答案(与问题相关)。此外,所有答案都必须链接到调查,因此我可以显示特定的调查结果(在用户完成后)
你能帮我让它工作吗?我只能为最后一个问题显示一个答案,我在 Controller 逻辑或我的 FormType 中做错了什么?
Answer.entity
<?php
namespace SurveyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Answer
*
* @ORM\Table(name="answer")
* @ORM\Entity(repositoryClass="SurveyBundle\Repository\AnswerRepository")
*/
class Answer
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="text", type="string", length=255)
*/
private $text;
/**
* Id from Company Entity
*
* @var int
*
* @ORM\ManyToOne(targetEntity="SurveyBundle\Entity\Survey", inversedBy="answer", cascade={"persist"})
*
*/
private $survey;
/**
* Id from Question Entity
*
* @ORM\OneToOne(targetEntity="SurveyBundle\Entity\Question", mappedBy="answer")
*/
private $question;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set text
*
* @param string $text
*
* @return Answer
*/
public function setText($text)
{
$this->text = $text;
return $this;
}
/**
* Get text
*
* @return string
*/
public function getText()
{
return $this->text;
}
/**
* @return int
*/
public function getSurvey()
{
return $this->survey;
}
/**
* @param int $survey
*/
public function setSurvey($survey)
{
$this->survey = $survey;
}
/**
* @return mixed
*/
public function getQuestion()
{
return $this->question;
}
/**
* @param mixed $question
*/
public function setQuestion($question)
{
$this->question = $question;
}
}
问题实体
<?php
namespace SurveyBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Question
*
* @ORM\Table(name="question")
* @ORM\Entity(repositoryClass="SurveyBundle\Repository\QuestionRepository")
*/
class Question
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="text", type="string", length=255)
*/
private $text;
public function __toString()
{
return (string) $this->text;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set text
*
* @param string $text
*
* @return Question
*/
public function setText($text)
{
$this->text = $text;
return $this;
}
/**
* Get text
*
* @return string
*/
public function getText()
{
return $this->text;
}
}
调查实体
<?php
namespace SurveyBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Survey
*
* @ORM\Table(name="survey")
* @ORM\Entity(repositoryClass="SurveyBundle\Repository\SurveyRepository")
*/
class Survey
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Id from Question Entity
*
* @ORM\OneToMany(targetEntity="SurveyBundle\Entity\Question", mappedBy="survey")
*/
private $question;
function __construct()
{
$this->question = new ArrayCollection();
}
public function getQuestion()
{
return $this->question;
}
/**
* Id from Answer Entity
*
* @ORM\OneToMany(targetEntity="SurveyBundle\Entity\Answer", mappedBy="survey")
*/
private $answer;
public function setAnswer($answer)
{
$this->answer = $answer;
return $this;
}
/**
* @return mixed
*/
public function getAnswer()
{
return $this->answer;
}
/**
* @param Question $question
*/
public function addQuestion(Question $question)
{
$this->question[] = $question;
}
}
Survey.controller
<?php
namespace SurveyBundle\Controller;
use SurveyBundle\Entity\Survey;
use SurveyBundle\Form\SurveyType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
/**
* @Route("/survey", name="survey")
*/
public function indexAction(Request $request)
{
$em = $this->getDoctrine()->getEntityManager();
$questions = $em->getRepository('SurveyBundle:Question')->findAll();
$survey = new Survey();
//$ListProduits->setProduits($produits);
foreach ($questions as $question)
$survey->addQuestion($question);
$form = $this->createForm(SurveyType::class, $survey);
$form->handleRequest($request);
if ($request->getMethod() === 'POST') {
if ($form->isSubmitted() && $form->isValid()) {
$em->persist($survey);
$em->flush();
$data = $form->getData();
var_dump($data);
echo 'OK2';
}else {
//ERROR
trigger_error('Error - Survey hasn\'t been completed - Contact a Wizard');
}
}
return $this->render('SurveyBundle:Default:index.html.twig', array('form' => $form->createView()));
}
}
Survey.FormType
<?php
namespace SurveyBundle\Form;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class SurveyType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
//->add('name','text')
->add('question', EntityType::class,
'class' => 'SurveyBundle:Question',
'mapped' => false,
"multiple" => true,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('q')
->orderBy('q.text', 'ASC');
},
))
->add(
'answer',
AnswerType::class
)
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'SurveyBundle\Entity\Survey'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'referencebundle_survey';
}
}
我只有一个答案字段,仅用于问题 2。每个问题我都需要一个。
另外,当我尝试提交时出现此错误:
Catchable Fatal Error: Argument 1 passed to Doctrine\Common\Collections\ArrayCollection::__construct() must be of the type array, object given, called in .../vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php on line 605 and defined
最佳答案
您正在使用 multiple=>true 语句呈现所有问题,但这并没有将答案与每个问题相关联。 THEN 你的表单呈现一个答案,所以你只会看到一个答案。
我认为您需要的是一组表单,请参阅文档:http://symfony.com/doc/current/form/form_collections.html
首先为每个问题/答案组合构建一个表单,然后呈现来自 Survey.FormType 的表单集合。
关于php - 使用现有和不存在的实体创建表单/调查 (Symfony 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769861/
是否有任何工具可以检查现有的 squashfs 图像并找出每个文件的压缩率? 如果它可以帮助我估计一个巨大的可执行文件中静态链接符号的闪存使用情况,则可以加分。 最佳答案 7zip 程序可以提供这些信
我有自定义调查,在 RootWeb.Properties 中有到期日期。如何在到期日期后将所有想要回复调查的用户(单击“回复调查”或使用指向 NewForm.aspx 的直接链接)重定向到包含一些自定
是否可以通过查询字符串发送答案?像这样的东西: HTTP://survey/1?ASW1=test 最佳答案 是的,请参阅手册 - https://manual.limesurvey.org/Work
我问了一个question关于如何在调试时调查 XMLWriter 对象的内容。我正在尝试检查从内存流创建的 XmlReader 对象的内容,其方式与链接问题的答案中给出的方式类似。但是我收到 Una
如何在调试时查看完全填充的 XmlWriter 对象的 XML 内容。我的 Silverlight 应用程序不允许实际写入文件和检查内容。 最佳答案 让它写入 MemoryStream或 String
我今天才开始使用 AB。阅读一些新的 AB 教程,并尝试尝试对我的网站进行负载测试。 使用它几次后,我收到了大量失败的请求。你能解释一下失败的请求是什么意思吗?我该如何针对此问题进行更多调查? 示例
当我运行 project 时与 valgrind我收到错误报告。如果我不使用 Valgrind,那么程序看起来是正常的,但是当 Valgrind 报告它时,我确定有问题。 ==21286== Inva
我在一页上有 36 个常见问题解答和答案。每个答案都包含在一个可折叠元素中。我的目标是让用户在常见问题解答中单击是或否,然后我通过 GTM/GA 跟踪该值。但是,当我当前单击是或否时,该值显示“感谢您
我们在 aws 上的 hdfs 之上有一个 spark 集群,具有 2 个核心节点和 1 个主节点。最近我发现所有作业都失败了,因为两个核心节点上的磁盘都已满。经过进一步调查发现: /data/var
我正在构建一个 Web 应用程序,它基本上允许“管理员”创建具有任意数量和组合的表单元素(复选框、组合框、文本字段、日期字段、单选组等)的表单。 “用户”将登录此应用程序并完成管理员创建的表格。 我们
想象一下这样的情况。您获得了一些遗留代码或获得了一些新框架。您需要尽快调查并了解如何使用此代码。没有机会向以前的开发人员寻求帮助。什么是最佳实践/方法/方式/步骤/工具(首选 .NET Framewo
我正在尝试从在 MacOS 上运行的 docker 容器访问 host-x.com,但它失败了: $ docker run ubuntu:latest \ /bin/bash -c \ '
我最近研究了 WinForms 应用程序中的一些 .NET“内存泄漏”(即意外的、挥之不去的 GC 根对象)。加载然后关闭一个巨大的报告后,即使经过几次 gen2 收集,内存使用量也没有按预期下降。假
如何允许具有读取权限的用户回复 Sharepoint 2013 调查? 我尝试过仅读取访问权限,但无法获取“回复调查”链接。我还尝试了“贡献访问”选项,这一次,我得到了“回复调查”按钮。当我尝试填写调
如何允许具有读取权限的用户响应 Sharepoint 2013 调查? 我试过只有读取权限,但无法获得“回复调查”链接。我也尝试了“贡献访问”选项,这次,我得到了“响应调查”按钮。当我尝试填写调查详细
目前我正在深入研究 CLR 并尝试找到我的托管对象的适当大小。 我有两个简单的类型: XClass class XClass { public XStruct StructField
我正在调查在由 mesos marathon 编排的 docker 容器中运行的 java 应用程序的内存不足问题。 容器设置为2GB内存 JVM 堆显式设置为最小 1Gb 和最大 1.5GB 持续测
在使用/FA 选项编译使用此虚拟类的代码时 class A { public: A() {} int Initialize() { return 0; } }
我正尝试在 Symfony 3.2.4 和 PHP 5.6.28 中为我的应用程序创建动态调查/表单包 我有 3 个实体:调查/问题/答案 第一步是为每个用户创建一个调查。问题必须与相关的答案字段一起
我正在尝试将一个简单的调查嵌入到弹出窗口中并将其与我的应用程序集成。弹出窗口需要包含一个调查问题,该问题将使用两个选项单选按钮捕获用户的响应。一旦用户选择单选选项,我需要触发一个事件以启用提交按钮。单
我是一名优秀的程序员,十分优秀!