gpt4 book ai didi

forms - 如何在 Symfony2 中将值传递给 Form Builder?

转载 作者:行者123 更新时间:2023-12-04 08:50:31 26 4
gpt4 key购买 nike

我正在使用表单生成器来创建在应用程序中使用的表单。在表单中,用户需要能够选择与其关联的事件列表。但是,我无法弄清楚如何将用户 ID 传递给表单构建器?

目前我的代码是这样的:

EvType.php

<?php
// src/Acme/MembersBundle/Form/Type/EvType.php
// This is to handle forms for the Members Form
namespace Acme\MembersBundle\Form;

use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class EvType extends AbstractType
{

public function buildForm(FormBuilderInterface $builder, array $options)
{

$centre = $this->centre;

$builder->add('id', 'integer', array('required'=>false));
$builder->add('list','entity', array('class'=>'Acme\InstructorBundle\Entity\MapLists', 'property'=>'name',
'query_builder' => function(EntityRepository $br) {
return $br->createQueryBuilder('ml')
->where('ml.user = :user')
->setParameter('user','1' );
}));
$builder->add('eventHorse', 'text', array('required'=>false));
}

public function getName()
{
return 'ev';
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\InstructorBundle\Entity\MapListCentreMembers',
'csrf_protection' => false,
'csrf_field_name' => '_token',
// a unique key to help generate the secret token
'intention' => 'task_item',
));
}

}

->setParameter('user','1' ); 是我希望能够从表单中传递用户 ID 的地方。目前,我已经静态分配了用户 ID。

DefaultController.php

// User ID
$userid = $mem['userID'];

// Get Tests from Entity for Form use
$memberEV = $dm->getRepository('InstructorBundle:MapListMembers')->find($memberint);

// Generate Form to edit Tests & Achievements
$ev = $this->createForm( new EvType(), $memberEV);

最佳答案

您可以简单地在 __construct 中传递一个值。

见下文:

EvType.php

class EvType extends AbstractType
{
private $user;

public function __construct($user)
{
$this->user = $user;
}

public function buildForm(FormBuilderInterface $builder, array $options)
{
$user = $this->user;
....
}

DefaultController.php

$ev = $this->createForm( new EvType($user), $memberEV);

关于forms - 如何在 Symfony2 中将值传递给 Form Builder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081144/

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