これは私の最初の質問です:S
Symfony2 を使用していますが、次のような問題があります。
ManyToOne 関係で関連付けられた 2 つのエンティティがあり、次のエンティティのフォームを作成したい
/**
* @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\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php 行 1358 で指定された文字列
ORM が PK の文字列の読み取りに失敗したようです。それを修正するために何を確認する必要があるかについては、だれもほとんど知りません。アドバイスありがとう:)