Hi,

I am trying to do a multiple edit on a database table.

Whn I output like this:
[code]
<?php echo $form->getStatusObject($key)->getStatusname() ?>
[/code]
I get this error:
[code]
Fatal error: Call to a member function getStatusname() on a non-
object
[/code]

When I comment the above out the rest of the fields print out with the
data as expected but with this error at the bottom of the page:

[code]
Fatal error: Cannot use object of type sfFormField as array
[/code]

Can you see what I am doing wrong here?  I put the full code below.

Thank you in advance.


 Template:
 [code]
       <?php foreach($form as $key => $status): ?>
         <tr>
           <td><?php echo $form->getStatusObject($key)->getStatusname
() ?></td>
           <td>
             <?php echo $status['statusOrder']; // should print text
field with db value populated ?>
             <?php echo $status['statusOrder']->renderError(); ?>
           </td>
           <td>
             <?php echo $status['startend'] ?>
             <?php echo $status['statusOrder']->renderError(); ?>
           </td>
         </tr>
       <?php endforeach; ?>
[/code]

Forms:
[code]
<?php

class StatusEditForm extends sfForm
{
  protected $status_objects = array();

  public function configure()
  {
    foreach( StatusPeer::doSelect(new Criteria()) as $status_object )
    {
      $this->embedForm('status_'.$status_object->getId(), new
StatusForm($status_object));
    }
  }

  public function getStatusObject($key)
  {
    return (isset($this->status_objects[$key])) ? $this->status_objects
[$key] : null;
  }

  public function save()
  {
    $values = $this->getValues();

    foreach($this->getEmbeddedForms() as $key => $status_form)
    {
      $status_form->updateObject($values[$key]);
      $status_form->getObject()->save();
    }
  }

}

[/code]

[code]
class StatusForm extends BaseStatusForm
{
  protected $status_objects;

  protected static $startend_choices = array(
    'entry_point' => 'Entry Point',
    'end_point'   => 'End Point'
  );

  public function configure()
  {
    // completely unset any fields you don't need
    unset(
      $this['id'],
      $this['report']
    );

    $this->widgetSchema['id'] = new sfWidgetFormInputHidden();
    $this->widgetSchema['startend'] = new sfWidgetFormSelectRadio
( array(
      'choices' => self::$startend_choices
    ));
    $this->widgetSchema['statusOrder'] = new sfWidgetFormInput();

    $this->validatorSchema['startend'] = new sfValidatorChoice(array(
      'choices' => array_keys(self::$startend_choices)
    ));
  }


 }
 [/code]

This seems to be where the problem is.  It's not returning an object:

[code]
  public function getStatusObject($key)
  {
    return (isset($this->status_objects[$key])) ? $this->status_objects
[$key] : null;
  }
[/code]

Does anybody have any idea why?

Thank you.

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