Php 在表单Symfony 2中嵌入当前用户id
我正在尝试验证Symfony 2.3中的表单。我需要获取当前用户id并在我的数据库中提交 我的控制器:Php 在表单Symfony 2中嵌入当前用户id,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,我正在尝试验证Symfony 2.3中的表单。我需要获取当前用户id并在我的数据库中提交 我的控制器: public function giftcardAction(Request $request) { $giftcard = new Giftcard(); $giftcard->setDate(new \DateTime()); $user = $this->container->get('security.co
public function giftcardAction(Request $request)
{
$giftcard = new Giftcard();
$giftcard->setDate(new \DateTime());
$user = $this->container->get('security.context')->getToken()->getUser();
$userId = $user->getId();
var_dump($userId);
$form = $this->createFormBuilder($giftcard)
->add('amount', 'integer')
->add('onBehalfOf')
->add('towards')
->add('message', 'text')
// ->add($userId)
->add('submit', 'submit')
->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($giftcard);
$em->flush();
}else{
throw new NotFoundHttpException("Page not found");
}
}
return $this->render('FrontBundle:Forms:giftcard.html.twig', array(
'form' => $form->createView(),
));
}
我的模板
目前,我可以在控制器的var_dump中获取用户id。但是我如何以形式传递变量。有人可以帮我吗。谢谢。如果您希望将用户与礼品卡关联,我会为该实体创建一对一单向关系。然后在
if($form-isValid())
中,在持久化到数据库之前,您将执行类似于$giftcard->setUser($user)
的操作。Doctrine或任何您使用的ORM将自动获取用户Id并将其放入数据库中。这也有助于将来当您检索礼品卡时,您不必执行额外的步骤将该id更改回用户,只需执行$giftcard->getUser()
如果是单个id,为什么要使用数组UserId?如果您希望将用户与礼品卡关联,我将为该实体创建一对一单向关系。然后在if($form-isValid())
中,在持久化到数据库之前,您将执行类似于$giftcard->setUser($user)
的操作。Doctrine或任何您使用的ORM将自动获取用户Id并将其放入数据库中。这也有助于将来当您检索礼品卡时,您不必执行额外的步骤将该id更改回用户,只需执行$giftcard->getUser()
如果是单个id,为什么要使用数组UserId?如果您希望将用户与礼品卡关联,我将为该实体创建一对一单向关系。然后在if($form-isValid())
中,在持久化到数据库之前,您将执行类似于$giftcard->setUser($user)
的操作。Doctrine或任何您使用的ORM将自动获取用户Id并将其放入数据库中。这也有助于将来当您检索礼品卡时,您不必执行额外的步骤将该id更改回用户,只要执行$giftcard->getUser()
如果它是单个id,为什么要使用数组UserId?
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class GiftCardType extends AbstractType
{
private $userId;
public function __construct(array $userId)
{
$this->userId = $userId;
}
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('date')
->add('onBehalfOf')
->add('towards')
->add('message')
// ->add('UserId')
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Front\Bundle\Entity\GiftCard',
));
}
/**
* @return string
*/
public function getName()
{
return 'front_bundle_giftcard';
}
}