gpt4 book ai didi

php - 使用实体自动构建表单(一对一关系)

转载 作者:可可西里 更新时间:2023-10-31 22:52:02 25 4
gpt4 key购买 nike

我想知道是否可以使用一个实体来构建一个表单,以获取一对一关系中的所有字段。澄清一下:

我有一个 User.php 实体(包含所有明显的字段、姓名、姓氏、流派等)和一个 Address.php 实体。我想要的是构建整个表单,而不是一一添加 Address 实体的属性,并将其以适当的关系保存在数据库中。

这是我试过的方法(我稍微修改了代码),但显然不是正确的方法:

用户实体:

class User implements UserInterface {

/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;


/**
* @ORM\Column(type="string", length=100, nullable=TRUE)
*/
protected $firstName;

/**
* @ORM\Column(type="string", length=200)
* @Assert\NotBlank()
*/
protected $lastNames;

/**
* @ORM\OneToOne(targetEntity="Capsa\Bundle\ClubCommonBundle\Entity\Address")
*/
protected $address;

地址类

class Address {

/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @ORM\Column(type="string", length=100, unique=TRUE)
* @Assert\NotBlank()
*/
protected $streetName;

/**
* @ORM\Column(type="string", length=50)
*/
protected $streetNumber;

表单生成器:

public function buildForm(FormBuilder $builder, array $options) {
$builder->add('login', 'text')
->add('password', 'password')
->add('firstName', 'text', array("required" => FALSE))
->add('lastNames', 'text')
->add('address', 'entity', array(
'class' => 'CapsaClubCommonBundle:Address',
'property'=>'streetName'
));
}

那只获取表的字段 streetName 并将其放入列表中。

最佳答案

尝试使用Collection form type而不是实体字段类型 – 请参阅 this tutorial .

关于php - 使用实体自动构建表单(一对一关系),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521898/

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