我按照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