So I'm trying to make forms with the new 1.1 framework, and have several
questions about the way it works.
Here is my attempt to build a ClientForm:
------- BEGIN CODE --------
<?php
class ClientForm extends sfForm
{
protected $client;
public function __construct($client, $defaults = null, $options = array(),
$CSRFSecret = null)
{
if (!$client instanceof Client)
{
throw new sfException('Object must be an instance of Client');
}
$this->client = $client;
parent::__construct($defaults, $options, $CSRFSecret);
}
public function configure()
{
$i18n = sfContext::getInstance()->getI18N();
$schema = new sfWidgetFormSchema(array(
'id' => new sfWidgetFormInputHidden(),
'general' => new sfWidgetFormSchema(array(
'name' => new sfWidgetFormInput(),
)),
'address' => new AddressFormSchema(), // AddressFormSchema extends
sfWidgetFormSchema
'additional' => new sfWidgetFormSchema(array(
'notes' => new sfWidgetFormTextarea(),
)),
));
$schema->setLabels(array(
'general' => array(
'name' => $i18n->__('Name'),
'notes' => $i18n->__('Notes'),
)
));
$schema->setHelps(array(
'general' => array(
'name' => $i18n->__('Enter a name for this client.'),
'notes' => $i18n->__('Enter any additional notes or profile
information.'),
)
));
$this->setWidgetSchema($schema);
$this->setValidatorSchema(
new sfValidatorSchema(array(
'name' => new sfValidatorString(array('min_length' => 2, 'max_length' =>
63)),
)));
$input = array(
'id' => $this->client->id,
'general' => array(
'name' => $this->client->name,
),
'additional' => array(
'notes' => $this->client->notes,
),
);
$this->bind($input);
}
}
------- END CODE --------
Here are some issues/questions that I have:
1.) I don't think the Helps or the Labels work with my nested form schema
strucutre. For instance, the labels just show the field name, not the actual
text that is defined. I don't receive an error or anything, so I assume I have
it setup right?
2.) The validator doesn't appear to work with the nested schema structure. If
i have it set to array('general' => array('name' => sfValidatorString())), it
can't find the "name" field.
3.) Is I18N being handled the best way? Seems like there might be a more
"integrated" approach?
4.) I am wondering if the way that I am importing the address schema is the
correct/best method to do this. Will it work recursively if I want to pass data
from the $client variable into the address schema? Will validation work?
Should I somehow include another sfForm instead of a schema?
5.) Any general tips/best practices that I might be overlooking to make this
the work the most seamless/flexible way?
Thanks for any help or examples you can give me to get started in the right
direction.
-- ian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---