Symfony:如何将非实体变量传递给表单

时间:2015-09-09 15:23:54

标签: symfony

我有一个表单,用于从三个实体收集数据。我收集数据并希望在提交的表格中填写一些数据。这一切都工作正常,我甚至可以将数据传递给控制器​​,但我有一个实体不包含我试图用作段落标记但不想持久的数据:

members.php(实体)

/**
 * @var integer
 */
private $orgId;

/**
 * @var integer
 */
private $personId;


/**
 * @var string
 */
private $title;

/**
 * @var integer
 */
private $rank;

/**
 * @var integer
 */
private $myMemberId;

所以我想显示该人的姓名和组织名称,而不是$ personId和$ orgId。所以我想我也会传递它们并在段落标签中显示它们但我无法弄清楚如何传递它们。这就是我所拥有的:

membersController.php

 public function mynewAction(Request $request)
{
    $data = $request->get("companynameofbundle_jquery");
    $entity = new Members();
    $entity->setOrgId($data['orgid']);
    $entity->setPersonId($data['personId']);

    //var_dump($request); shows organization name and person name
    //need to pass person name and organization name to edit form just to display
    $form   = $this->createCreateForm($entity);

    return array(
        'entity' => $entity,
        'form'   => $form->createView(),
    );
}

我确实考虑过重新查找这些值,但是当我已经拥有这些值并且不需要所有其他数据或开销时,它似乎更像数据库。

认为可能会有所帮助:

class MemberType extends AbstractType
{



 /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            //Would like person name and organization name instead of id's
            ->add('orgId', 'hidden')
            ->add('personId', 'hidden')
            ->add('title')
            ->add('rank')
        ;
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Company\NameofBundle\Entity\OrgMember'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'company_nameofbundle_orgmember';
    }
}

0 个答案:

没有答案
相关问题