Bonjour,

Je dois permettre aux utilisateurs de mon application de modifier le contenu de différents panels. Je le fais donc sous forme fenêtre modale avec un WYSIWYG. Mais à l'update rien ne se passe, ou j'ai un Notice : array to string conversion. Pour moi, il en devrait pas être là.

Le html :

<div class="modal-body">
                        <form method="post" action="{{ path("modifierBoiteOutils") }}">
                        {% for datas in dataBoiteOutils %}
                        {% if fonctionUser >= datas.id_fonction %}
                        <div class="linkBoiteOutils{{loop.index}}">
                        <a title="{{datas.content}}">{{ datas.content | striptags | slice(0, 20) }} [...]</a>
                        </div>
                            <br/>
                            <div class="hideBoiteOutils{{loop.index}}">
                            <textarea id="textarea{{loop.index}}" class="ckeditor" name="boiteOutils[]" style="width:80%; height: 400px; display: hidden;">{{datas.content}}</textarea>
                            <input type="hidden" name="id[]" value="{{datas.id}}">
                            <input type="submit" name="submit" id="test" value="Valider" style="margin-bottom: 10px; margin-top: 10px;"/> 
                            </div>

                        <script>
                            $('.hideBoiteOutils{{loop.index}}').hide();
                            $(document).on("click", ".linkBoiteOutils{{loop.index}}", function(){$(".hideBoiteOutils{{loop.index}}").toggle();});
                        </script>
                        {% endif %}
                        {% endfor %}
                        </form>
                    </div>
                </div>

Le controlleur :

public function modifierBoiteOutils(Application $app, Request $request){

        $content = $request->get('boiteOutils');
        $id = $request->get('id');
        $queryBuilderModifBoiteOutils = $app['db']->createQueryBuilder();
        $i = 1;

        while($i<=count($content)){
            $queryBuilderModifBoiteOutils->update('contenu')->set("content", "$content[$i]")->where("id = $id[$i]");
            $queryBuilderModifBoiteOutils->execute();
            $i++;
        }

        //var_dump($content);
        //var_dump($id);
    }

Mes var dump retournent bien les tableaux attendus.
De plus, il y a quelque chose de bizarre au niveau du [$i] : le crochet fermant semble ne pas être pris en compte (rouge au lieu de jaune dans mes guillements sur sublim text). Je n'ai pas vu d'oublis de caractères ...

1 réponse


Je ne comprends pas trop pourquoi tu fais ça : "$content[$i]"