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="..." />
 
fr/helpers.txt · Last modified: 2008/04/04 17:34 by goldoraf