[symfony 1.4.x][propel] Formulaires imbriqués
Bonjour,
Je reviens une fois de plus pour un problème dans un développement symfony.
J'essaye de créer un formulaire imbriquer, mais je n'arrive pas a trouver une doc précise.
Mon premier formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
class SmslistForm extends BaseSipsmslistForm
{
public function configure()
{
unset ($this['id_list'],$this['User_id']);
$this->widgetSchema['nom_list']= new sfWidgetFormPropelChoice(array(
'model' => 'Sipsmslist',
'add_empty' => false,
));
$this->widgetSchema->setHelp('nom_list',"Veuillez selectionnez une liste d'envoi.");
$this->widgetSchema->setLabels(array(
"nom_list"=> 'Liste',
));
$this->widgetSchema->setNameFormat('sipSmslist[%s]');
}
} |
Mon deuxième formulaire avec appel du premier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
class SmsmultiForm extends BaseSipsmsForm
{
public function configure()
{
parent::configure();
unset ($this['user_id'],$this['Num_envoi'],$this['id'],$this['date_envoi']);
$this->embedForm ('Smslist', new SmslistForm());
$this->setWidgets(array(
"Text_sms"=> new sfWidgetFormTextarea(),
));
$this->widgetSchema->setHelp('Text_sms',"Le sms ne doit pas exceder 1600 caractères.");
$this->widgetSchema->setLabels(array(
"Text_sms"=> 'Message',
));
$this->widgetSchema->setNameFormat('sipSms[%s]');
$this->setValidators(array(
"Text_sms"=>new sfValidatorString(array('required'=>true,'min_length'=>1,'max_length'=>1600),
array('min_length'=>'Le message est trop court',
'max_length'=>'Le message est trop long',
'required'=>'Un message est requis',
)),
));
}
} |
Ma fonction d'appel :
Code:
1 2 3 4 5 6
|
public function executeInfosmsmulti(sfWebRequest $request)
{
$this->profile = sfGuardUserProfilePeer::getByID($this->getUser()->getId());
$this->form = new SmsmultiForm();
} |
Et mon _Form.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
<?php use_stylesheets_for_form($form) ?>
<?php use_javascripts_for_form($form) ?>
<div id="sous_contenu_bleu">
<form action="<?php echo url_for('account/sendsmsmulti') ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
<div align="center">
<table width="95%" cellspacing="0" cellpadding="2">
<?php if ($form->hasGlobalErrors()){?>
<tr>
<td colspan="2" class="tabcel2">
<?php Foreach ($form->getGlobalErrors() as $name=>$error){?>
<h3 align="center"><strong><?php echo $error." ".$name ?></strong></h3>
<?php } ?>
</td>
</tr>
<?php } ?>
<tr>
<td colspan="2" class="tabcel2">
<h3 align="center"><strong>Composer votre Message</strong></h3>
</td>
</tr>
<tr>
<td width="28%" class="tabcel1">
<div align="right">
<?php echo $form['nom_list']->renderLabel();?>
<br/><?php echo $form['nom_list']->renderHelp();?>
</div>
</td>
<td width="72%" class="tabcel1">
<?php echo $form['nom_list']->render(array("style" => "width: 100px; height: 20px;"));?><?php echo $form['nom_list']->getError();?>
</td>
</tr>
<tr>
<td width="28%" class="tabcel1">
<div align="right">
<?php echo $form['Text_sms']->renderLabel();?>
<br/><?php echo $form['Text_sms']->renderHelp();?>
</div>
</td>
<td width="72%" class="tabcel1">
<?php echo $form['Text_sms']->render(array("style" => "width: 200px; height: 100px;", "id" => "LgntSMS"));?><?php echo $form['Text_sms']->getError();?>
</td>
</tr>
<?php echo $form['_csrf_token']->render()?>
<tr>
<td colspan="2" class="tabcel2">
<div align="center">
<input type="submit" value="Envoyer votre message" />
</div>
</td>
</tr>
</table>
</div>
<script type="text/javascript" src="functions.js"></script>
</form>
</div> |
Il me retourne cet erreur :
Widget "nom_list" does not exist.
Alors qu'il devrait le trouver, vu qu'il est passé du premier formulaire au deuxième.
Si quelqu'un a une idée, ça m'avancerait grandement.
Merci d'avance