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 ...