在我的symfony 4项目中,我的用户使用文件形式的“ feuilleConge ”,可以使用VichUploaderBundle从其配置文件中上传。
/**
* @ORM\OneToOne(targetEntity="App\Entity\FeuilleConge", inversedBy="user", cascade={"persist", "remove"})
*/
private $feuilleConge;
还有feuilleConge实体:
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="feuilleCongeName", type="string", length=255, nullable=true)
*/
private $feuilleCongeName;
/**
* @Vich\UploadableField(mapping="feuillesConge", fileNameProperty="feuilleCongeName")
* @var File
*/
private $feuilleCongeFile;
/**
* @ORM\Column(type="datetime", nullable=true)
* @var \DateTime
*/
private $updatedAt;
/**
* @ORM\OneToOne(targetEntity="App\Entity\User", mappedBy="feuilleConge", cascade={"persist", "remove"})
*/
private $user;
//...
在个人资料页面中,我显示一个表单,其中包含“ feuilleConge ”的“文件”字段。
除了在此页面上之外,我使用Javascript,以便在文件字段默认情况下使用用户已经上传的文件名。
所以我必须做一个条件,检查用户确实有 feuilleConge 工作表,在这种情况下,我将应用javascript。
if ({{ user.feuilleConge }}) {
var feuilleConge = document.querySelector('[for = "profile_feuilleConge_feuilleCongeFile_file"]');
feuilleCongeName.innerHTML = {{ user.feuilleConge.feuilleCongeName }};
}
但是起初,即使我失败了,他也不想访问我的 {{user.feuilleConge}}
var feuille = {{user.feuilleConge}}
if(feuille)
{
...
}
相反,我立即出现错误:
无法访问null上的属性(“ feuilleCongeName”) 变量。
但是,仅当 user.feuilleConge 与null不同时,我才要求他访问 feuilleCongeName 。
并且当我的用户拥有 feuilleConge 时,效果很好