Bonjour,

Voila je rencontre un petit problème avec mon code.
j'ai cette erreur: "Array to string conversion" et voici la ligne qui crée cette erreur: C:\cygwin64\home--------\blogTest\src\HTML\Form.php

    public function select(string $key, string $label, array $options = []):string
    {
        $optionsHTML = [];
        foreach ($options as $k => $v){
            $optionsHTML[] = "<option value\"$k\">$v</option>";
        }
        $value = $this->getValue($key);
        $optionsHTML[] = implode('', $optionsHTML);
        return <<<HTML
    <div class="form-group">
         <label for="field{$key}">{$label}</label>
     cette ligne =>    <select id="field{$key}" name="{$key}" class="{$this->getInputClass($key)}" required multiple>{$optionsHTML}</select>
         {$this->getErrorFeedback($key)}
    </div>
HTML;
    }

voici les argument que j'ai

8

"Array to string conversion"

"C:\cygwin64\home\BAYONG Cyrille 22\blogTest\src\HTML\Form.php"

51

array:7 [▼
"key" => "categories"
"label" => "Catégories"
"options" => array:5 [▼
4 => "Omnis deserunt est."
3 => "Pariatur molestiae autem rem."
2 => "Quasi et et."
5 => "Quia quia pariatur."
1 => "Vitae aliquid ullam tempore."
]
"optionsHTML" => array:6 [▼
0 => "<option value"4">Omnis deserunt est.</option>"
1 => "<option value"3">Pariatur molestiae autem rem.</option>"
2 => "<option value"2">Quasi et et.</option>"
3 => "<option value"5">Quia quia pariatur.</option>"
4 => "<option value"1">Vitae aliquid ullam tempore.</option>"
5 => "<option value"4">Omnis deserunt est.</option><option value"3">Pariatur molestiae autem rem.</option><option value"2">Quasi et et.</option><option value"5">Quia ▶"
]
"v" => "Vitae aliquid ullam tempore."
"k" => 1
"value" => []
]


merci d'avance pour votre aide

3 réponses


Balsakup
Réponse acceptée

Salut,
remplaces $optionsHTML[] = implode('', $optionsHTML); par $optionsHTML = implode('', $optionsHTML); et ça devrait fonctionner.
Tu vas avoir un problème aussi avec $optionsHTML[] = "<option value\"$k\">$v</option>";, il manque un signe = après value

Bonjour,
Oui optionsHTML est un tableau et toi il te faut un string
Donc soit tu fais un "explode" de ton tableau pour le mettre dans ton select
Soit lors du foreach, tu fais une concaténation au lieu d'un tableau

Bonjour,
merci a toi @Balsakup, ta solution a resolu le problème.