yes, setField is a method in my Entities\Info.php, by that getInfo(), in
previous email I tried to get Info entity via product->order then via
order->info within a loop as you suggested, then to update some properties
in Info entity and I get this error, for sure my proxies are still
auto-generated.
Fatal error: Uncaught exception 'Doctrine\ORM\EntityNotFoundException' with
message 'Entity was not found.' in
/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php:177 Stack
trace: #0 /Proxies/__CG__EntitiesInfo.php(227):
Doctrine\ORM\Proxy\{closure}(Object(Proxies\__CG__\Entities\Info),
'setFields', Array) #1 /Proxies/__CG__EntitiesInfo.php(227):
Closure->__invoke(Object(Proxies\__CG__\Entities\Info), 'setFields', Array)
#2 /myscript.php(101): Proxies\__CG__\Entities\Info->setFields(Array,
Array) #3 {main} thrown in
/vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php on line 177
On Sun, Apr 20, 2014 at 11:18 PM, Herman Peeren <[email protected]>wrote:
> Is that setFields() defined in your entity? How is the Info-entity
> defined? What was the exact error message?
>
> On Sunday, 20 April 2014 20:08:21 UTC+2, Parsifal wrote:
>
>>
>> Thanks a lot Herman, I did this:
>>
>> foreach ($orders as $order) {
>> $info = $order->getInfo();
>> $info->setFields($_POST, array(.....));
>> }
>> Now I get entity was not found for setField(), now getInfo() does not
>> give error like before. How can I load $info as entity to update some
>> properties?
>>
>>
>>
>>
>>
>>
>> On Sun, Apr 20, 2014 at 6:34 PM, Herman Peeren <[email protected]>wrote:
>>
>>> $em->find('Entities\Product', $_POST['productId'])->getOrders() gives
>>> back a collection (of orders).
>>> You now try to do getInfo() on that collection, but Doctrine's
>>> collection class doen't have a getInfo() method.
>>>
>>> If you want to do a getInfo() on each individual order, so you'll have
>>> to loop through the collection:
>>>
>>> foreach ($orders as $order) {
>>> $productInfo = $order->getInfo(); // and do something with that
>>> $productInfo.
>>>
>>> }
>>>
>>>
>>>
>>> On Sunday, 20 April 2014 14:21:18 UTC+2, Parsifal wrote:
>>>
>>>> Thanks herman for helping me how to use getProduct method rather than
>>>> dql.
>>>> Just a question:
>>>>
>>>> relation from Product to Order:
>>>> $metadata->mapOneToMany(array( 'fieldName' => 'orders',
>>>> 'targetEntity' => 'Entities\\Order',
>>>> 'mappedBy' => 'product',
>>>> 'joinColumns' => array( 0 => array(
>>>> 'name' => 'product_id',
>>>>
>>>> 'referencedColumnName' => 'product_id',
>>>>
>>>> 'nullable' => true,
>>>>
>>>> 'columnDefinition' => NULL,
>>>> ), )
>>>> ));
>>>>
>>>> In product entity I defined:
>>>> public function getOrders()
>>>> {
>>>> return $this->orders;
>>>> }
>>>>
>>>> ======
>>>> relation from Order to Info:
>>>> $metadata->mapOneToOne(array( 'fieldName' => 'info',
>>>> 'targetEntity' => 'Entities\\Info',
>>>> 'inversedBy' => 'order',
>>>> 'mappedBy' => 'order',
>>>> 'joinColumns' => array( 0 => array(
>>>> 'name' => 'id',
>>>>
>>>> 'referencedColumnName' => 'order_id',
>>>>
>>>> 'nullable' => true,
>>>>
>>>> 'columnDefinition' => NULL,
>>>> ), )
>>>> ));
>>>>
>>>> In order entiry I defined:
>>>> public function getInfo()
>>>> {
>>>> return $this->info;
>>>> }
>>>>
>>>> Now I need to have:
>>>> $products = $em->find('Entities\Product', $_POST['productId'])->
>>>> getOrders()->getInfo();
>>>>
>>>> But I get:
>>>> Call to undefined method Doctrine\ORM\PersistentCollection::getInfo()
>>>> but I have getInfo() method in Order entity, what wrong I did?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Apr 4, 2014 at 1:38 PM, Herman Peeren <[email protected]>wrote:
>>>>
>>>>> All I was saying there is that your:
>>>>>
>>>>>
>>>>> public function getProduct() {
>>>>> return $this->ProductId;
>>>>> }
>>>>>
>>>>> Sould be something like:
>>>>>
>>>>> public function getProduct() {
>>>>> return $this->*product*; // Return a Product, not an id of a
>>>>> Product.
>>>>> }
>>>>>
>>>>>
>>>>> On Friday, 4 April 2014 10:29:32 UTC+2, Parsifal wrote:
>>>>>
>>>>>> Thanks Herman,
>>>>>> A bit confusion in your last email to me as below. If I understood
>>>>>> correctly in getProduct function it should be something like:
>>>>>> fuction getProduct($id) {
>>>>>> return $em->find('Product', $id);
>>>>>> }
>>>>>> Right? And this function should be in Product entity class file
>>>>>> itself?
>>>>>> Please clarify if I understood you correctly.
>>>>>> در 2014 3 20 22:45، "Herman Peeren" <[email protected]> نوشت:
>>>>>>
>>>>>>> Hmmm was about to finally shut down my computer and saw your last
>>>>>>> message.* NO!!!* *getProduct() doen't return a ProductId but a
>>>>>>> Product!!!* That is the essence of why we do this all! In
>>>>>>> getProduct() you have nothing to do with an id. It's just what the name
>>>>>>> sais: getProduct() gets a Product, can't be simpler. Idem with
>>>>>>> getInfo().
>>>>>>> The id is only necessary for the mapping. And maybe if you want to find
>>>>>>> a
>>>>>>> specific Product outside of this model.
>>>>>>>
>>>>>>>
>>>>>>> On Thursday, 20 March 2014 22:24:51 UTC+1, Parsifal wrote:
>>>>>>>>
>>>>>>>> Thanks a lot. Just a quick check with you for sure:
>>>>>>>> In "X" entity I add this:
>>>>>>>>
>>>>>>>> public function getProduct() {
>>>>>>>> return $this->ProductId;
>>>>>>>> }
>>>>>>>>
>>>>>>>> Then in "Info" entity I have this:
>>>>>>>>
>>>>>>>> public function getInfo() {
>>>>>>>> return $this->ProductId;
>>>>>>>> }
>>>>>>>>
>>>>>>>> Then use with:
>>>>>>>> $specificX->getProduct()-getInfo();
>>>>>>>>
>>>>>>>> Right? Or what these functions should be? I guess getInfo() should
>>>>>>>> be in Product entity instead of Info entity? If yes, what should be
>>>>>>>> inside
>>>>>>>> the function that it loads Info entity?
>>>>>>>>
>>>>>>> --
>>>>>>> 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.
>>>>>>>
>>>>>> --
>>>>> 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.
>>>>>
>>>>
>>>> --
>>> 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.
>>>
>>
>> --
> 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.
>
--
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.