我试图以symfony2形式添加实体字段,但它总是给我同样的错误:' 500(内部服务器错误)'。
这是我用来创建表单的类。它是用学说和CRUD自动编程的。
class ClientType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('companyName', 'text' , array( 'attr' => array( 'class' => 'companyname' ) ) )
->add('contactUserName','text' , array( 'attr' => array( 'class' => 'contactusername' ) ))
->add('phone','text' , array( 'attr' => array( 'class' => 'phone' ) ))
->add('subdomain','text' , array( 'attr' => array( 'class' => 'subdomain' ) ))
->add('email','text' , array( 'attr' => array( 'class' => 'email' ) ))
->add('website','text' , array( 'attr' => array( 'class' => 'website' ) ))
;
}
这很好,但是,我尝试这样的事情:
->add('client', 'entity', array(
'class' => 'BackendBundle:Client'));
' 500(内部服务器错误)'
我尝试了很多不同的方法来做到这一点,但它总是一样的错误。 问题是,我可以添加或删除在课程CRUD完成此课程时在初学时创建的字段,但如果我尝试添加更多不同类型的字段,它就不会让我。
我应该创建自己的Type类,以便我可以自定义表单,还是有办法修改表单原则?
TY
答案 0 :(得分:1)
问题是,我可以添加或删除在该处创建的字段 当这个课程由学说CRUD完成但是如果我尝试的时候开始 添加更多不同类型的字段,它不会让我。
这是因为根据ClientType.php
文件的结构,创建BackendBundle\Entity\Client.php
的命令会这样做。表单将映射到您要创建的实体。如果您需要表单上的更多字段,则需要在BackendBundle\Entity\Client.php
中添加字段作为属性,然后运行:
php bin/console doctrine:generate:entities <VENDOR>/<BUNDLE>/Entity/Client
or if using Symfony 2 < version 2.5
php app/console doctrine:generate:entities <VENDOR>/<BUNDLE>/Entity/Client
为该字段生成getter和setter,然后
php bin/console doctrine:schema:update --force
or if using Symfony 2 < version 2.5
php app/console doctrine:schema:update --force
将新字段添加到数据库表中。
现在您可以尝试按原样添加字段,确保add()
方法中的第一个参数与您在实体中命名属性的方式完全匹配。