私は現在、Symfony2の最新バージョンを使用するアプリケーションを開発しています。ファイルアップロードフィールドを含むフォームの検証に問題があります。
私のフォームコードは次のようになります(短縮):
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Validator\Constraints\MinLength;
use Symfony\Component\Validator\Constraints\Collection;
class EventEditForm extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add("name", "text", array("required" => true));
//....
$builder->add("image", "file", array("property_path" => false, "required" => false));
}
public function getDefaultOptions(array $options)
{
$collectionConstraint = new \Symfony\Component\Validator\Constraints\Collection(array(
'image' => new \Symfony\Component\Validator\Constraints\Image()
));
$options["validation_constraint"] = $collectionConstraint;
return $options;
}
public function getName()
{
return 'editeventform';
}
}
ここでわかるように、アップロードされたファイルが画像であることを確認したいと思います。私は次のようなフォームを使用します:
$form = $this->createForm(new \Trancefans\AdminBundle\Form\EventEditForm(), $event);
しかし、このコードを実行すると、次のエラーが発生します。
配列型またはTraversableおよびArrayAccessの期待される引数、オブジェクトが指定されました
私は自分のせいがどこにあるのか本当にわかりません。ドキュメントに記載されているとおりに実行しました。誰かが私を助けることができますか?:-)
ところで:画像はイベントエンティティによって表されていませんが、フォームの他のすべてのフィールドは表されています。私は教義を使います。