JFSF チュートリアルに従って、JFSF アップロード バンドルをインストールします。一歩一歩、私はそれを作り、エラーはありませんでした。
しかし、既存のバンドルで同じことをしようとすると、何らかの理由でフォームを検証できません。ファイル入力は常にNULLです。
エンティティをバインドする引数構成を含むservices.ymlにバグがある可能性があります。特定のコードが必要な場合は、私に尋ねてください。唯一の違いは (理論上)、エンティティ名、つまりバンドル名だけです。
このバンドルは、アップロード プロセスの処理に非常に役立ちます。誰かがすでに試しましたか?
isValid() メソッドの直前にコントローラーの createAction() でエンティティを var_dump した場合 (コンソールによって生成された crud フォームを使用します):
object(Toto\GestionSiteBundle\Entity\People)#368 (4)
{
["filePhoto"]=> object(Symfony\Component\HttpFoundation\File\UploadedFile)#12 (7)
{
["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false)
["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(7) "95.jpeg"
["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(10) "image/jpeg"
["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(73987)
["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0)
["pathName":"SplFileInfo":private]=> string(36) "/Applications/MAMP/tmp/php/phpKH4PQo"
["fileName":"SplFileInfo":private]=> string(9) "phpKH4PQo"
}
["id":"Toto\GestionSiteBundle\Entity\People":private]=> NULL
["nom":"Toto\GestionSiteBundle\Entity\People":private]=> string(4) "cleo"
["photo":"Toto\GestionSiteBundle\Entity\People":private]=> NULL
}
ブラウザから例外が返されます:
An exception occurred while executing 'INSERT INTO People (nom, photo) VALUES (?, ?)' with params {"1":"cleo","2":null}:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'photo' cannot be null