더 나은 이해를 위해 간단히 컨텍스트를 지정합니다.엔터티 양식의 쿼리 빌더가 OneToOne 관계에서 일괄 선택 생성
저는 BankAccount 관계가있는 User 엔티티가 있습니다. 여기
, 내 사용자 클래스 :/**
* User
*
* @ORM\Table(name="fos_user")
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
*/
class User extends BaseUser
{
// [...]
/**
* @ORM\OneToOne(targetEntity="AppBundle\Entity\BankAccount", mappedBy="customer")
*/
private $bankAccount;
// [...]
}
그리고 내 은행 계좌 클래스 :
/**
* BankAccount
*
* @ORM\Table(name="bank_account")
* @ORM\Entity
* @DoctrineAssert\UniqueEntity({"iban"})
* @DoctrineAssert\UniqueEntity({"mandateRef"})
* @ORM\HasLifecycleCallbacks
*/
class BankAccount
{
// [...]
/**
* @var User
*
* @ORM\OneToOne(targetEntity="AppBundle\Entity\User", inversedBy="bankAccount")
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $customer;
// [...]
}
좀 해 orderBy 문을 사용자에 대한 기본 엔티티 유형이 될 것입니다 필터 양식을 만들려면 . 이것은 BankAccount가 각 사용자에 대해, 교리에 의해 선택하는이 많이 발생합니다
->add('customer', null, array(
'query_builder' => function (UserRepository $er) {
return $er->createQueryBuilder('u')
->select('u')
->orderBy('u.firstname, u.lastname, u.username')
;
},
'property' => 'fullnameWithUsername',
))
: 나는 그래서 query_builder 옵션을 사용합니다
나는 더 이상 추가 쿼리 빌더를 비활성화하지 않는 경우 선택 그러나 우리는 왼쪽 선택한 사용자에 합류 :
그래서 솔루션 C를 ould는 수동으로 내 쿼리 빌더에 설명 된대로 here으로 조인 문을 추가하는 것이지만 꽤 추악하고 그런데, 나는이 양식에 대해 사용자의 은행 계좌가 절대로 필요하지 않다고 생각합니다.
내 질문은 : Doctrine이 항상 사용자의 은행 계좌 관계를 얻으려고 시도하지 않는다는 것을 어떻게 알 수 있습니까?
참고 : 이미 두 항목 모두에서 모든 가져 오기 옵션을 시도했지만 작동하지 않습니다.
도움 주셔서 감사합니다.
도움을 주셔서 감사합니다.하지만 모든 곳에서 참여하는 것보다 더 추악하다고 생각합니다./ – Soullivaneuh
그래, 나도 알아, 이상하지 않아. 다른 옵션은 querybuilder select에서 BankAccount에 가입하는 것입니다. – Richard