多対多リレーションシップを持つ多項式フォームを設定しようとしていますが、このエラーメッセージが表示され続けます。 "プロパティパス" rozmiar "の値を変換できません。多くのsymfonyフォーム
/**
* @var ArrayCollection
* @ORM\ManyToMany(targetEntity="Rozmiar")
* @ORM\JoinTable(
* name="buty__rozmiary",
* joinColumns={@ORM\JoinColumn(name="buty_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="rozmiar_id", referencedColumnName="id")}
*)
*/
private $rozmiar;
/**
* Set rozmiar
*
* @param ArrayCollection $rozmiar
* @return rozmiar
*/
public function setRozmiar($rozmiar)
{
$this->rozmiar = $rozmiar;
return $this;
}
/**
* @return ArrayCollection
*/
public function getRozmiar()
{
return $this->rozmiar;
}
public function __construct()
{
$this->rozmiar = new ArrayCollection();
}
そして、私のフォーム::これは私のエンティティがどのように見えるかです
->add('rozmiar', ChoiceType::class, array(
'expanded' => true,
'multiple' => true,
'choices' => [35,36,37,38,39,40]
)
)
私はこの作業を取得するために何をすべきか?あなたの助けを前にありがとう。
EDIT: 私は
->add('rozmiar', EntityType::class, array(
'class' => 'ShoeShopBundle:Buty',
'expanded' => true,
'multiple' => true,
'choices' => [35,36,37,38,39,40]))
に私のFORMの一部を変更し、今私が取得しています。エラー "警告spl_object_hash()は、パラメータ1は、オブジェクト、整数与えることを期待します"。この種のフィールドで選択肢を定義する適切な方法は何ですか?
public function addRozmiar(\MyBundle\Entity\Rozmiar $rozmiar)
{
if (!$this->rozmiar->contains($rozmiar)) {
$this->rozmiar->add($rozmiar);
$rozmiar->addButy($this);
}
return $this;
}
Symfony2のI中:
拡張をfalseに設定しようとしましたか? – DOZ
'EntityType'フィールドを使用する必要があります。http://symfony.com/doc/current/reference/forms/types/entity.html – malcolm
これでEntityTypeフィールドを使用すると、' - > add( 'rozmiar' 、EntityType :: class、array( 'class' => 'ShoeShopBundle:Buty'、 'expanded' => false、 'multiple' => true、 ) ) 'それは機能しますが、選択肢のリスト?私はコントローラでそれを定義する必要がありますか?私が '' choices '=> [35,36,37,38,39,40]を使用しているとき ''警告が表示されます:spl_object_hash()はパラメータ1がオブジェクトであることを期待しています、整数を指定しました " –