のないエンティティでCollectionTypeは私がsymfony3フォームとCollectionTypeはクラスで苦労しています:symfonyの3 - フォーム - 教義
私はいくつかの複雑な形状を持つページがあります。
class ProductService
{
/** @var string */
private $msg;
/** @var array*/
private $products
}
とクラスProductServiceType:私は、任意のデータベース(検証フォームが外国RESTサービスに送信されます)
は、今度は、私が「ProductService」と呼ばれる私の要求のためのエンティティオブジェクトを持っているとしましょう使用しないでください
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('products', CollectionType::class, [
'entry_type' => ProductType::class,
])
->add('msg' [...]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => ProductService::class,
]);
}
この設定では、すべてが魅力的に機能し、すべての製品が自分のエンティティの製品配列に追加されます。 問題は、私は$の製品がSplObjectStorageオブジェクトになりたい、次のとおりです。
class ProductService
{
/** @var string */
private $msg;
/** @var SplObjectStorage */
private $products
}
私はこれにそれを設定し、その中に空のオブジェクトを添付する場合、symfonyはそれ以上のフォームをレンダリングすることはできません。これは、次のエラーがスローされます。 警告:教義とORMを使用しない場合SplObjectStorage :: offsetExists()は、誰が主体でCollectionTypeはをどのように扱うか、私に伝えることができ、パラメータ1だから
を指定されたオブジェクト、文字列であることを期待します? 配列を使用する唯一の可能性はありますか、またはこのケースのドキュメントがありますか、見つけられませんでしたか? (私はまだsymfonyがoffsetExistsをどのように呼び出すのか疑問に思っています、SplObjectStorageを処理するためにsometingが実装されている必要がありますか、間違っていませんか)
私の一日を過ごしました、あなたはボティスさんでした。本当に素晴らしい解決策です!私はそれを次の日に試して答えを出すでしょう。ありがとうございました – j0nnybrav0
こんにちはJannes、私はちょうどあなたのソリューションを実装し、それは動作します。どうもありがとうございました! – j0nnybrav0