这是我的第一个问题:SSymfony的改变形式的一种形式呈现多对一场
我使用Symfony2中,我有以下的麻烦
我有一个相关的两个实体多对一的关系,我想打一个形式的跟随着实体
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Acme\ProductsBundle\Entity\ProductCategory", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $productCategory;
}
所以我做了以下“ProductType”
class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('productCategory')
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\ProductsBundle\Entity\Product'
));
}
public function getName()
{
return 'acme_hellobundle_producttype';
}
}
当我渲染窗体时,所有的工作都很棒,但现在我想将“productCategory”的窗口小部件更改为文本窗口小部件,因为用户需要编写作为productCategory主键的数字。
但是,当我这样做,并完成表格,我得到以下错误。
警告:spl_object_hash()预计参数1为对象,串 在 C中给出:\ XAMPP \ htdocs中\ SYM2 \的Symfony \厂商\教义\ ORM \ lib中\学说\ ORM \ UnitOfWork.php line 1358
似乎ORM读取PK字符串失败,任何人都不知道我必须看到什么来修复它。谢谢建议:)
你需要多一点工作,而不仅仅是从实体生成表单,记住你可以结合FormTypes,一个ProductType可以有一个CategoryType在里面。检查symfony文档,它写得很好(如果你和我一样,用法语)。 – mpm 2013-02-16 02:02:12
还要检查你的getters/setters,以便正确地键入它们。 – Ocramius 2013-02-16 02:38:33