Suppose there's a User entity and it is composed of the following fields (mapped to value objects in my app): username, email, password.
>From what you said, I'd have to change this to username_value (or username_username if your config so), email_value, password_value. Is that correct? Terça-feira, 26 de Agosto de 2014 15:59:11 UTC+1, Marco Pivetta escreveu: > > That's actually how the functionality was designed, I don't see why you'd > want to remove the prefix... > > Marco Pivetta > > http://twitter.com/Ocramius > > http://ocramius.github.com/ > > > On 26 August 2014 16:56, <[email protected] <javascript:>> wrote: > >> Hello, >> >> I'm having a bit of trouble implementing Embeddables. I exposed the >> problem on SO >> <http://stackoverflow.com/questions/25502930/doctrine-wont-fetch-embedded-field>, >> >> which I'm pasting here. >> >> <?php namespace Blah; >> >> use Doctrine\ORM\Mapping as ORM; >> >> /** >> * @ORM\Entity >> * @ORM\Table(name="test") >> */ >> class Test { >> >> /** >> * @ORM\Id >> * @ORM\GeneratedValue >> * @ORM\Column(type="integer") >> * @var integer >> */ >> private $id; >> >> /** >> * @ORM\Embedded(class="Name") >> * @var Name >> */ >> private $name; >> >> public function __construct(Name $name) >> { >> $this->name = $name; >> } >> >> public function getId() >> { >> return $this->id; >> } >> >> /** >> * @return Name >> */ >> public function getName() >> { >> return $this->name; >> } >> >> } >> >> /** >> * @ORM\Embeddable >> */ >> class Name { >> >> /** >> * @ORM\Column(type="string") >> */ >> private $value; >> >> public function __construct($value) >> { >> $this->value = $value; >> } >> >> public function __toString() >> { >> return $this->value; >> } >> >> } >> >> What I want is to input a Name type object into Test, have in persisted >> in the database as a string. When I retrieve the entity, I want name to be >> of type Name, not string. >> >> Seeing the query logs, Doctrine is trying to insert/fetch the column >> strangely named as *name_value* instead of *name*. >> >> I tried using >> @ORM\Column(type="string") >> >> in the entity in the name property, and it kind of works. But instead of >> a Name type, I get a string when Doctrine fetches the entity. >> >> I also tried setting >> @ORM\Column(type="string", name="name") >> >> in the value object, value property, only to have Doctrine name the field >> as *name_name* instead of *name_value*. >> >> The database schema was created manually. >> I'm using Laravel and Doctrine using mitchellvanw/laravel-doctrine. >> >> Thanks in advance. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "doctrine-user" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/doctrine-user. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "doctrine-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/doctrine-user. For more options, visit https://groups.google.com/d/optout.
