我有一个像这样的体育锦标赛数据库架构
这里doman
有one to many
关系tournament
,我有一个domain
收集域详细信息并将其存储在数据库中的表单,我有这样的锦标赛和域表
tournament table
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| domain_id | int(11) | YES | MUL | NULL | |
| description | longtext | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
Domain Table
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| subdomain | varchar(255) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
我有一个tournamentType
收集锦标赛详细信息的文件,但提交后显然会有一个null
值domain_id
。我如何为tournaments
将要创建的所有内容设置域值让我们说domain_id = 1
。
我可以使用 setter 在控制器中执行此操作,但这会很麻烦,有没有办法在 symfony 嵌入式表单中one
从侧面设置侧面,many
编辑:现在我正在这样做,在控制器内部
$tournament->setDomain($em->getRepository("CricketBundle\Model\Entity\Domain")->findOneById(1));
$em->persist($tournament);
$em->flush();
在锦标赛实体的二传手内部
public function setDomain(\CricketBundle\Model\Entity\Domain $domain = null)
{
$domain->addTournament($this);
$this->domain = $domain;
return $this;
}
每件事都很好,我只是不想使用控制器内的设置器,我想将它移动到其他地方