May it was like that before but now actually i am reading the wiki and try
to understand it... I posted that to make sure if i understood correctly
how to insert a new record?
در 2014 2 20 04:14، "Roy Epperson" <[email protected]> نوشت:

> Just curious, before you started writing your own class and trying to
> persist them using the Doctrine 2 ORM, did you completely implement the
> getting started  tutorials?   Many of your questions lead me to believe you
> did not or you did understand what was going on.
>
> You might consider doing that if you have not. And if you have, you might
> consider try add classes and persisting with that class model using the
> techniques you are trying.
>
> Maybe I am missing something, but it seems you're trying to run before you
> understand the relationship between a PHP class model and an ORM persisting
> an object.
>
> Just one opinion....
> On Feb 19, 2014 6:53 PM, "Nima Sadjadi" <[email protected]> wrote:
>
>> An expert please confirm if I am in a correct way saying this? Or I
>> should be able to insert a new order directly without calling client?
>> در 2014 2 19 19:59، "Nima Sadjadi" <[email protected]> نوشت:
>>
>>> When I wanted to do $this->blah = "blah"; to set the fields to add a new
>>> record in a table using persist/flush, e.g. a new order, I noticed I cannot
>>> set the value for client_id that is a ManyToOne foreign key to Client
>>> entity. I tried to discover how can I do this using the documentation. As
>>> it took 24 hours to figure it out, I post it here for other newbies with
>>> appropriate subject that they can find it by searching the group. First of
>>> all special thanks to Herman who helped me a lot.
>>>
>>> An expert please correct me if I am saying something wrong. Are all of
>>> these parts necessary or I've added some unnecessary things?
>>>
>>> In Client.php, that is OneToManyClient, we have to have something like
>>> this:
>>>
>>>     public function __construct() {
>>>         $this->orders = new ArrayCollection();
>>>     }
>>>
>>>     public function addOrder($order)
>>>     {
>>>         $this->orders[] = $order;
>>>     }
>>>
>>>     public function setFields($fields)
>>>     {
>>>         foreach ($fields as $key=>$value) {
>>>                  $this->$key = $value;
>>>         }
>>>     }
>>> $metadata->mapOneToMany(array( 'fieldName' => 'orders',
>>>                                'targetEntity' => 'Entities\\Order',
>>>                                'mappedBy' => 'client',
>>>                                'joinColumns' => array( 0 => array(
>>> 'name' => 'client_id',
>>>
>>> 'referencedColumnName' => 'client_id',
>>>
>>> 'nullable' => true,
>>>
>>> 'columnDefinition' => NULL,
>>>                                                       ), )
>>>
>>>                              ));
>>>
>>>
>>> ==
>>> In Order.php we have this:
>>>
>>>     public function setClient($client)
>>>     {
>>>         $client->addOrder($this);
>>>         $this->client = $client;
>>>     }
>>>
>>>
>>>     public function setFields($fields)
>>>     {
>>>         foreach ($fields as $key=>$value) {
>>>                  $this->$key = $value;
>>>         }
>>>     }
>>> $metadata->mapManyToOne(array( 'fieldName' => 'client',
>>>                                'targetEntity' => 'Entities\\Client',
>>>                                'inversedBy' => 'orders',
>>>                                'joinColumns' => array( 0 => array(
>>> 'name' => 'client_id',
>>>
>>> 'referencedColumnName' => 'client_id',
>>>
>>> 'nullable' => true,
>>>
>>> 'columnDefinition' => NULL,
>>>                                                       ), )
>>>
>>>                              ));
>>>
>>> ==
>>>
>>> Then to insert $_POST order data to db for client_id = 1, we can do this:
>>>
>>> $client = $em->find('Entities\Client', 1);
>>> if ($client === null) {
>>>     echo "No client found.\n";
>>>     exit(1);
>>> }
>>> $order = new Entities\Order;
>>> $order->setClient($client);
>>> $order->setFields($_POST);
>>> $em->persist($order);
>>> $em->flush();
>>>
>>> An expert please correct me if I am saying something wrong. Are all of
>>> these parts necessary or I've added some unnecessary things?
>>>
>>  --
>> 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/groups/opt_out.
>>
>  --
> 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/groups/opt_out.
>

-- 
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/groups/opt_out.

Reply via email to