Symfony表单:在第二个和顶级部分中拆分提交的域名,并将其保存到模型中

时间:2016-02-18 14:11:04

标签: php symfony doctrine-orm symfony-forms

首先,抱歉这个有意义的小标题。我没有找到更好的方法来描述这个问题。

我正在开发一个遗留的php应用程序,我们将逐步向docmine迁移到symfony2。 我们有一个包含域名的数据库表。相应的Toplevel-Domain(例如com)也存储在此表中,并充当ToplevelDomain-Table的外键。

第一个问题是该表包含tld两次,首先在域中,第二个作为另一个表的外键。我会通过从域的其余部分删除TLD来解决这个问题。

这里的主要问题是表单提交的处理: 我只想提交整个域名而不需要额外的tld-field。我想我必须实现自定义类型并使用form-events来解析域名。

这是一个非常简单的例子:

Doctrine Model,只是相关部分:

/**
 * @ORM\ManyToOne(targetEntity="ToplevelDomain")
 * @ORM\JoinColumn(name="toplevelDomain")
 **/
private $toplevelDomain;

/**
 * Domainname without tld
 *
 * @ORM\Column(type="string",name="domain_name") 
 */
private $domainName;

现在我想要一个带有一个域字段的表单字段,如下所示:

$form->add('domain');

表单应该放入域名和tld中,并在域模型中设置。

如果您对此有任何想法或想法,我将不胜感激。我会继续深入研究并发布解决方案,只要我有一个。

谢谢

0 个答案:

没有答案