{"id":290,"date":"2019-04-06T15:50:15","date_gmt":"2019-04-06T19:50:15","guid":{"rendered":"http:\/\/arielnavarrete.cl\/blog\/?p=290"},"modified":"2019-04-06T15:53:57","modified_gmt":"2019-04-06T19:53:57","slug":"file-null-returned-con-vichuploaderbundle","status":"publish","type":"post","link":"https:\/\/arielnavarrete.cl\/blog\/2019\/04\/06\/file-null-returned-con-vichuploaderbundle\/","title":{"rendered":"File, null returned con VichUploaderBundle"},"content":{"rendered":"\n<p>Hace poco tenia integrado VichUploaderBundle y funcionaba sin mayores problemas, cuando toco hacer el paso a produccion, el servidor estaba con PHP 7.0, por ende tuve que agregarle en el <a href=\"https:\/\/arielnavarrete.cl\/blog\/2018\/02\/04\/config-platform\/\">config platform<\/a> esta version para que las dependencias no producieran problema.<\/p>\n\n\n\n<!--more Seguir leyendo...-->\n\n\n\n<p>Cuando empece con las pruebas, mi entidad que manejaba los archivos empezo a generar este error:<\/p>\n\n\n\n<p><pre class=\"brush: php; title: ; notranslate\" title=\"\">Type error: Return value of AppBundle\\Entity\\Archivo::getImageFile() must be an instance of Symfony\\Component\\HttpFoundation\\File\\File, null returned<\/pre><\/p>\n\n\n\n<p>El motivo es porque si bien las dependencias estaban para PHP 7.0, mi entidad no reconocia el <strong><em>?<\/em><\/strong> para indicar que es nullable ya que esto se incorporo en PHP 7.1<\/p>\n\n\n\n<p><pre class=\"brush: php; title: ; notranslate\" title=\"\">public function getImageFile(): ?File<\/pre><\/p>\n\n\n\n<p>La solucion es bastante simple, se reemplazo por:<\/p>\n\n\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\/**\n* @return File|UploadedFile|null\n*\/\npublic function getImageFile()<\/pre>\n\n\n\n<p>Notese que se elimino <strong>: ?File<\/strong> y se agrego en el comentario superior lo que iba a retornar, si este no tenia uno, se agrega.<\/p>\n\n\n\n<p>En mi caso particular, mi setter permitia <strong>File|UploadedFile<\/strong>, por ende, debemos permitir lo mismo, m\u00e1s nuestro nullable que seria null. Con esto, se corrige el error y todo sigue funcionando correctamente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace poco tenia integrado VichUploaderBundle y funcionaba sin mayores problemas, cuando toco hacer el paso a produccion, el servidor estaba con PHP 7.0, por ende tuve que agregarle en el config platform esta version para que las dependencias no producieran problema.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,30,14],"tags":[23,31],"class_list":["post-290","post","type-post","status-publish","format-standard","hentry","category-php-2","category-symfony3","category-vichuploaderbundle","tag-php","tag-symfony3"],"_links":{"self":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts\/290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/comments?post=290"}],"version-history":[{"count":7,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts\/290\/revisions"}],"predecessor-version":[{"id":297,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/posts\/290\/revisions\/297"}],"wp:attachment":[{"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/media?parent=290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/categories?post=290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arielnavarrete.cl\/blog\/wp-json\/wp\/v2\/tags?post=290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}