我在学说2中有一个具有以下属性的实体
/**
* @var array
*
* @ORM\Column(name="space_data", type="json_array", nullable=true)
*/
protected $_spaceData = [];
我正在保存并检索此字段。当我转储这个实体时,填充正常,如下所示:
#_spaceData: array:22 [▼
"id" => 1
"name" => "Centro Cultural Niemeyer"
"location" => array:2 [▶]
"endereco" => null
"En_CEP" => null
"En_Nome_Logradouro" => null
"En_Num" => null
"En_Complemento" => null
"En_Bairro" => null
"En_Municipio" => null
"En_Estado" => null
"telefone1" => "(66) 8877-4411"
"telefone2" => null
"telefonePublico" => "(99) 6688-5544"
"emailPrivado" => "acc@gmail.com"
"emailPublico" => "acc@gmail.com"
"acessibilidade" => "Sim"
"acessibilidade_fisica" => "Banheiros adaptados;Elevador;Rampa de acesso"
"site" => "http://www.centroculturalniemeyer.com.br"
"googleplus" => null
"facebook" => null
"twitter" => null
]
但是当我尝试使用
在代码中访问它时$entity->_spaceData
它返回null。我不熟悉Doc2,而且我目前正在这里维护一个项目。如何转储正确的值,但是当我尝试访问它时返回null?任何帮助将不胜感激。
答案 0 :(得分:2)
为了完整起见,我用示例创建了答案。
在OOP中,您无法访问私人和受保护的字段。要在您的实体中访问它们,您应该使用公开getters
和getters
。
<?php
class MyEntity
{
/**
* @var array
*
* @ORM\Column(name="space_data", type="json_array", nullable=true)
*/
protected $_spaceData = [];
/**
* @return array
*/
public function getSpaceData() {
return $this->_spaceData;
}
/**
* @param array $spaceData
* @return $this
*/
public function setSpaceData($spaceData) {
$this->_spaceData = $spaceData;
return $this;
}
}