2016-08-02 10 views
1

Derzeit verwende ich Doctrine2 mit Wertobjekt, es funktioniert großartig. Das Problem, wenn ich Wert-Objekt verwenden, mit nur einem Feld, zum Beispiel:Doctrine-Wert-Objekt mit nur einem Feld

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

Die Frage ist, wie $ this-> repository-> findBy (array ('E-Mail' => ‚name @ domain machen. com ')); Arbeiten?

Dies ist meine Lehre Mapping

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> 

Vielen Dank für Ihre Hilfe, und sorry für mein schlechtes Englisch.

Antwort

0

Leider ist dies laut code nicht möglich. Feldname ist immer

$property . "." . $fieldMapping['fieldName'];