2016-08-02 7 views
1

現在、Doctrine2を値オブジェクトとともに使用しています。私は、例えば、1つのフィールドだけを持つ値オブジェクトを使用し、問題は:1つのフィールドのみを持つDoctrine値オブジェクト

$this->repository->findBy(array('email' => '[email protected]')); //This is not working 
$this->repository->findBy(array('email.email' => '[email protected]')); //This is work great 

質問は、どのようにます$ this-> repository-> findBy(配列(「メール」=>「名@ドメインを作成します。 com)));ワーキング?

これは私の教義マッピング

User.orm.xml

<!-- User.orm.xml -->  
<?xml version="1.0" encoding="UTF-8" ?> 
    <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping 
      http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd" 
         xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping"> 

     <entity name="Domain\User\Entity\User" table="users" repository-class="Infrastructure\User\Repository\UserRepository"> 
      <id name="id" type="guid"> 
       <generator strategy="UUID"/> 
      </id> 
      <embedded name="email" class="Shared\ValueObject\Email" use-column-prefix="false" /> 
     </entity> 
    </doctrine-mapping> 

Email.orm.xml

<!-- Email.orm.xml --> 
<?xml version="1.0" encoding="UTF-8" ?> 
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping 
       http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> 

    <embeddable name="Shared\ValueObject\Email"> 
     <field name="email" type="string" length="80" /> 
    </embeddable> 
</doctrine-mapping> 

であなたの助けをありがとう、そして私の悪い英語のため申し訳ありません。

答えて

0

残念ながらcodeによるとこれはできません。フィールド名は常に

$property . "." . $fieldMapping['fieldName']; 
関連する問題