Bonjour,
j'ai un probléme que j'arrive a résoudre.
En effet, j'ai développé une fonction qui permet de réaliser la chaine suivante: A.5 ....A.18
private $this->concat;
public function __construct()
{
$this->concat=$this->calPrefixe();
}
public function calPrefixe()
{
$tab= array();
for ($i=5; $i<=18;$i++)
{
$tab[$i] ="A.".$i;
}
return $tab;
}
Mon probléme que je sais pas comment ajouter la variable ($b) qui contient la listes des chaînes de caractères dans le 'builder form' comme il montre ce peusodo code:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$chp= new \Management\ChapitresBundle\Entity\Chapitres();
$b=$chp->getConcat();
// var_dump($b);
$builder
->add('prefixe','choice', array('choices'=>array($b => $b)))
;
}
Alors j'ai testé la variable $b avec la fonction var_dump() et voilà la résultat :
array(14) { [5]=> string(3) "A.5" [6]=> string(3) "A.6" [7]=> string(3) "A.7"
[8]=> string(3) "A.8" [9]=> string(3) "A.9" [10]=> string(4) "A.10"
[11]=> string(4) "A.11" [12]=> string(4)
"A.12" [13]=> string(4) "A.13" [14]=>
string(4) "A.14" [15]=> string(4) "A.15" [16]=> string(4)
"A.16" [17]=> string(4) "A.17" [18]=> string(4) "A.18"
}
le message d'erreur qui s'affiche lorsque j'actualise ma page:
Warning: Illegal offset type500
Internal Server Error - ContextErrorException
*Stack Trace
src/Management/ChapitresBundle/Form/ChapitresType.php at line 32
32--> ->add('prefixe','choice', array('choices'=>array($b => $b)))
Merci de m'aider a trouver la bonne solution
Bonjour Emile01,
avec ça c'est mieux ?
$builer->add('prefixe','choice', array('choices'=>$b));
Premier prolème avec votre code actuel:
$builder->add('prefixe','choice', array('choices'=>array($b => $b)));
Vous essayez de créer un tableau avec comme clef un tableau.
Et autre remarque, j'imagine que chaque clef représentera la valeur à stocker (attribut 'value' de la balise 'option' du 'select') ? Dans ce cas, il vous faudra certainement inverser les clefs par les valeurs et les valeurs par les clefs (array_flip)