Thanks. I this was too obvious not to be in there already. I just need to rtfm a little more closely.
Mark On Sun, Apr 13, 2008 at 6:33 AM, Matthew Weier O'Phinney <[EMAIL PROTECTED]> wrote: > -- Mark Wright <[EMAIL PROTECTED]> wrote > (on Saturday, 12 April 2008, 07:37 PM -0600): > > > > I've recently started using Zend_Form and like it quite a bit, but I > > am having issues with setting values for form elements. I like > > extending Zend_Form and creating the form in the init method, but if I > > am creating a form where people can edit information that is already > > in the database I don't see a good way to pass that information to the > > form class. I could just use isValid to populate it, but that doesn't > > seem right since I don't actually want to validate anything. After > > all, if the data already exists it should be valid. It seems that a > > setValues method would be better but I don't see any such method. > > > > What I'm considering is adding a static variable to my form classes > > which will contain the data and a static method which I would pass > > that data to. That method would then set the variable and instantiate > > the class. When setting the form elements in the init method it would > > check if values exist in the variable and use them. Then the method > > would return the form class instance. I think this is a fine work > > around, but I think it would be better if Zend_Form had a method that > > could set all values without having to validate it as well. > > > > So basically, I am looking to do something like this: > > > > $formObj = Form::getForm($arrayOfValues); > > > > When I would rather do this: > > > > $formObj = new Form; > > $formObj->setValues($arrayOfValues); > > > > Am I missing something or does that functionality just not exist? > > Umm -- setDefaults() and populate() do exactly this already... ;-) > > -- > Matthew Weier O'Phinney > Software Architect | [EMAIL PROTECTED] > Zend - The PHP Company | http://www.zend.com/ > -- Have fun or die trying - but try not to actually die.
