Perfect! Works like a charm. Looking forward to sf1.3 to get rid of the 
need for the work-around.

Tom Haskins-Vaughan wrote:
> Thanks, esion. I'll give it a go and let you know how I get on.
> 
> esion wrote:
>> Hi,
>>
>> First, I'm not sure that works  :
>>
>>  <?php foreach($form as $cartItemForm): ?>
>>          <tr>
>>            <td><?php echo $cartItemForm['quantity']->renderLabel() ?></
>> td>
>>            <td><?php echo $cartItemForm['quantity'] ?></td>
>>            <td></td>
>>          </tr>
>>        <?php endforeach; ?>
>>
>> It doesn't match with what you wrote in your form, what do you have in
>> your action file?
>>
>> You should have in your view something like that :
>> <?php foreach($form->getEmbeddedForms() as $cartItemForm): ?>
>>          <tr>
>>            <td colspan="2"><?php echo $cartItemForm ?></td>
>>       </tr>
>> <?php enforeach ?>
>>
>> Second (this is a really special gift, I spend several weeks to find
>> this tricks on the net, so I'm waiting for sf1.3 
>> http://trac.symfony-project.org/ticket/5264)
>> If you want to design your embedded forms you should use this code in
>> the foreach :
>>         $nameFormat = $form->getWidgetSchema()->generateName($name) .
>> '[%s]';
>>         $cartItemForm->getWidgetSchema()->setNameFormat($nameFormat);
>> else the name used in fields will be the same, then the form can't
>> work.
>>
>> Then you have now your array of sfForm, you can get the embedded forms
>> of the embedded form.
>> $cartItemForm->getEmbeddedForms()
>>
>> On May 21, 8:33 pm, Tom Haskins-Vaughan <t...@templestreetmedia.com>
>> wrote:
>>> Hi,
>>>
>>> I have successfully embedded a form like so:
>>>
>>> class CartForm extends BaseCartForm
>>> {
>>>    public function configure()
>>>    {
>>>      unset(
>>>        $this['id'],
>>>        $this['is_default'],
>>>        $this['buyer_id']
>>>      );
>>>
>>>      foreach($this->getObject()->getCartItems() as $cartItem)
>>>      {
>>>        $this->embedForm(
>>>          'cartitem_'.$cartItem->cart_id.'_'.$cartItem->harvest_id,
>>>          new CartItemForm($cartItem)
>>>        );
>>>      }
>>>    }
>>>
>>> }
>>>
>>> And I have managed to display it like so:
>>>
>>> <form method="post" action="<?php echo url_for('@my_cart') ?>">
>>>      <tbody>
>>>        <?php foreach($form as $cartItemForm): ?>
>>>          <tr>
>>>            <td><?php echo $cartItemForm['quantity']->renderLabel() ?></td>
>>>            <td><?php echo $cartItemForm['quantity'] ?></td>
>>>            <td></td>
>>>          </tr>
>>>        <?php endforeach; ?>
>>>      </tbody>
>>>    </table>
>>>    <input type="submit" value="Update cart" />
>>> </form>
>>>
>>> But I need to access some more information about each CartItem to
>>> display in the form, such as the Producer
>>> ($cartItem->Harvest->Producer). But in my example, it seems that
>>> $cartItemForm is not an sfForm but a sfFormField. So how do I access the
>>> Object of a form from a form field?
>>>
>>> Any help much appreciated.
>>>
>>> Thanks
>>>
>>> Tom
>>>
> 
> > 
> 

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to