Les helpers
Helpers de formulaires
Ces helpers sont conçus pour générer des éléments de formulaires en relation avec des objets assignés au template. Voici un exemple (l’objet $this→person ayant été assigné dans une action du controller) :
// on définit un objet dans le controller $this->person = new Person(); $this->person->name = 'Batman'; $this->person->password = 'secret'; $this->person->single = true; $this->person->description = 'dark superhero'; // le formulaire ainsi défini <form action="save_person" method="post"> <label>Name</label> <?= text_field('person', 'name', $this->person, array('size'=>40)); ?> <label>Password</label> <?= password_field('person', 'password', $this->person, array('maxsize'=>20)); ?> <label>Single ?</label> <?= check_box('person', 'single', $this->person); ?> <label>Description</label> <?= text_area('person', 'description', $this->person, array('cols'=>20)); ?> <input type="submit" value="Save"> </form> // génèrera <form action="save_person" method="post"> <label>Name</label> <input type="text" name="person[name]" id="person_name" size="40" value="Batman" /> <label>Password</label> <input type="password" name="person[password]" id="person_password" maxsize="20" value="secret" /> <label>Single ?</label> <input type="checkbox" name="person[single]" id="person_single" value="0" /> <label>Description</label> <textarea name="person[description]" id="person_description" cols="20"> dark superhero </textarea> <input type="submit" value="Save"> </form>
Si le helper est utilisé pour générer une séquence répétitive d’éléments de formulaires (par exemple dans un partial), l’option index peut s’avérer utile. Par exemple :
<?= text_field('person', 'name', $this->person, array('index' => 1)); ?> // génèrera <input type="text" name="person[1][name]" id="person_1_name" value="..." />
