[symfony-users] Re: How to access the object of an embedded form

2009-05-26 Thread Tom Haskins-Vaughan

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
-~--~~~~--~~--~--~---



[symfony-users] Re: How to access the object of an embedded form

2009-05-25 Thread Tom Haskins-Vaughan

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
-~--~~~~--~~--~--~---



[symfony-users] Re: How to access the object of an embedded form

2009-05-23 Thread esion


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
-~--~~~~--~~--~--~---



[symfony-users] Re: How to access the object of an embedded form

2009-05-23 Thread esion

Oups, another tip :
Don't forget that echo $form will display all the form and embedded
ones, It's really helpfull to design forms.

Cheers,
David.

On May 23, 11:26 am, esion esio...@gmail.com 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.3http://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
-~--~~~~--~~--~--~---