$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]<javascript:>
> > 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] <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.