我想從一個實體多維數組。轉換實體到陣列中的Symfony
Symfony Serializer已經可以轉換成XML,JSON,YAML等,而不是一個數組。
我需要轉換,因爲我希望有一個乾淨的var_dump
。我現在擁有很少連接的實體,完全不可讀。
我該如何做到這一點?
我想從一個實體多維數組。轉換實體到陣列中的Symfony
Symfony Serializer已經可以轉換成XML,JSON,YAML等,而不是一個數組。
我需要轉換,因爲我希望有一個乾淨的var_dump
。我現在擁有很少連接的實體,完全不可讀。
我該如何做到這一點?
使用get_object_vars() PHP函數:
在PHP控制器:
$properties = get_object_vars($entity);
return $this->container->get('templating')->renderResponse(
'YourOwnBundle:Entity:array.html.twig',
array(
'properties' => $properties
)
)
;
在嫩枝模板:
<table>
{% for key, value in properties %}
<tr>
<td>{{ value }}</td>
<td>{{ key }}</td>
</tr>
{% endfor %}
</table>
注:最佳實踐是f ORMAT直接存儲庫的實體(見下文)數組形式
在你EntityRepository,你可以選擇你的實體,並指定要與getArrayResult()
方法的數組。
欲瞭解更多信息,請參閱Doctrine query result formats documentation。
public function findByIdThenReturnArray($id){
$query = $this->getEntityManager()
->createQuery("SELECT e FROM YourOwnBundle:Entity e WHERE e.id = :id")
->setParameter('id', $id);
return $query->getArrayResult();
}
如果所有不符合你應該去看看PHP文檔中關於ArrayAccess接口。
它檢索的屬性是這樣的:echo $entity['Attribute'];
getArrayResult沒有實體轉換爲數組 - 我有實體,並希望將其轉換爲陣列 –
@。 GrekHmhmm我已經更新了我的答案:**使用get_object_vars($實體)** –
get_object_vars($實體)返回我的應用程序空2.6 – crafter
可能重複[?如何獲得Doctrine2結果對象作爲關聯數組(http://stackoverflow.com/questions/7259256/how-to-get-a -doctrine2-result-object-as-an-associative-array) – denys281
我不想得到restult作爲數組 - 我使用它作爲實體和需要在其他plaace轉換爲數組。 –
調試應用程序比「var_dumps」要好得多。嘗試使用xdebug - 這個工具作爲debuger非常棒。 – Cyprian