데이터베이스에서 doctrine으로 객체를 가져 오는 중이며 가능한 PHP 배열을 찾아 보는 것처럼 탐색하고 싶습니다. 나는 실제로이와doctrine으로 결과를 가져 왔습니다. 알 수없는 많은 데이터가 있습니다.
$COA = $this->getDoctrine()->getRepository('NRtworksChartOfAccountsBundle:Account')->findOneById(1);
var_dump($COA);
을 : 이제
가의 인출을 시도하자이 내 데이터베이스로 만들어
<?php
namespace NRtworks\ChartOfAccountsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity
* @ORM\Table(name="Account")
*/
class Account
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100, unique = true)
*/
protected $name;
/**
* @ORM\Column(type="string", length=50)
*/
protected $code;
/**
* @ORM\OneToMany(targetEntity="Account", mappedBy="parent")
*/
private $children;
/**
* @ORM\ManyToOne(targetEntity="Account", inversedBy="children")
*/
private $parent;
public function __construct()
{
$this->children = new ArrayCollection();
$this->parent = new ArrayCollection();
}
//getter & setter
?>
와 교리는 잘 작동 :
내가 당신에게 나의 실체를 보여 드리죠 내가 원하는 물건을 가져라. 그러나 나는 (Fos_UserBundle과 같은) 다른 것들이 내 사용자 엔티티 (다른 번들에서)에 사용되지만 여기에 사용 된 엔티티 계정과 아무 관련이 없다는 것과 같은 많은 것들을 가지고있다. var_dump 결과를보십시오 :
object(NRtworks\ChartOfAccountsBundle\Entity\Account)#408 (5) { ["id":protected]=> int(1) ["name":protected]=> string(5) "BILAN" ["code":protected]=> string(6) "000000" ["children":"NRtworks\ChartOfAccountsBundle\Entity\Account":private]=> object(Doctrine\ORM\PersistentCollection)#409 (9) { ["snapshot":"Doctrine\ORM\PersistentCollection":private]=> array(0) { } ["owner":"Doctrine\ORM\PersistentCollection":private]=> *RECURSION* ["association":"Doctrine\ORM\PersistentCollection":private]=> array(15) { ["fieldName"]=> string(8) "children" ["mappedBy"]=> string(6) "parent" ["targetEntity"]=> string(45) "NRtworks\ChartOfAccountsBundle\Entity\Account" ["cascade"]=> array(0) { } ["orphanRemoval"]=> bool(false) ["fetch"]=> int(2) ["type"]=> int(4) ["inversedBy"]=> NULL ["isOwningSide"]=> bool(false) ["sourceEntity"]=> string(45) "NRtworks\ChartOfAccountsBundle\Entity\Account" ["isCascadeRemove"]=> bool(false) ["isCascadePersist"]=> bool(false) ["isCascadeRefresh"]=> bool(false) ["isCascadeMerge"]=> bool(false) ["isCascadeDetach"]=> bool(false) } ["em":"Doctrine\ORM\PersistentCollection":private]=> object(Doctrine\ORM\EntityManager)#137 (10) { ["config":"Doctrine\ORM\EntityManager":private]=> object(Doctrine\ORM\Configuration)#150 (1) { ["_attributes":protected]=> array(13) { ["entityNamespaces"]=> array(3) { ["NRtworksChartOfAccountsBundle"]=> string(37) "NRtworks\ChartOfAccountsBundle\Entity" ["NRtworksSubscriptionBundle"]=> string(34) "NRtworks\SubscriptionBundle\Entity" ["FOSUserBundle"]=> string(21) "FOS\UserBundle\Entity" } ["metadataCacheImpl"]=> object(Doctrine\Common\Cache\ArrayCache)#159 (3) { ["data":"Doctrine\Common\Cache\ArrayCache":private]=> array(5) { ["DoctrineNamespaceCacheKey[sf2orm_default_3f554f15ae41595a1a142aaf979fc6f613a39d4a606464e7ca2715f45fc7d314]"]=> int(1)
그리고 내 인내가 넘칠 때까지 계속됩니다.
나는 ladybug_dump하려고했는데 제대로 작동합니다. 아이들이나 부모 컬렉션에있는 것을 볼 수 없습니다. 내 나뭇 가지에서 나는 문제없이 찾아 볼 수있다.
하지만 결과를 다시 정리하려면 구조를 잘 이해해야합니다.
누군가가이 데이터의 출처와 이유를 알고 있습니까?
괜찮 았어. 내 결과에 뭔가 문제가 있다고 걱정 했어. 아직도 나는 FOS User Bundle이 있다는 이상한 것을 발견했다.하지만 ... 실제로 내 질문의 맨 아래는 내 결과를 배열, 그리고 분명히 나는 그럴 수 없다. 나는 나뭇 가지에서 그것을 정렬하려고합니다. 비효율적 인 경우 솔루션 중 하나를 사용하겠습니다. 감사합니다. – Eagle1
FosUserBundle 항목에 대해 더 명확하게 답을 업데이트했습니다. –
이 생성자 내에서이 부모와 함께 모든 계정을 가져 오는 doctrine 쿼리로 배열 자식을 채울 수 있습니까? 그것은 적절한가? – Eagle1