THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


bonjour,
quand j'ajoute une nouvelle promotion ensuite je rajoute les catégories a ajouter.
Ensuite je choisi les produits a cocher que je veux mettre dans la promo
il me met les erreurs suivantes:
( ! ) Notice: Array to string conversion in C:\UwAmp\www\thelia\core\vendor\symfony\form\ChoiceList\ArrayKeyChoiceList.php on line 131
Call Stack
#    Time    Memory    Function    Location
1    0.0003    145368    {main}( )    ...\index.php:0
2    0.0819    3221592    Symfony\Component\HttpKernel\Kernel->handle( )    ...\index.php:38
3    0.2130    9431664    Stack\StackedHttpKernel->handle( )    ...\Kernel.php:185
4    0.2130    9431792    Thelia\Core\Stack\SessionMiddleware->handle( )    ...\StackedHttpKernel.php:23
5    0.2576    12141776    Thelia\Core\Stack\ParamInitMiddleware->handle( )    ...\SessionMiddleware.php:80
6    0.2577    12142544    Thelia\Core\TheliaHttpKernel->handle( )    ...\ParamInitMiddleware.php:87
7    0.2584    12147912    Symfony\Component\HttpKernel\HttpKernel->handle( )    ...\TheliaHttpKernel.php:76
8    0.2584    12148424    Symfony\Component\HttpKernel\HttpKernel->handleRaw( )    ...\HttpKernel.php:62
9    0.3054    14107920    call_user_func_array:{C:\UwAmp\www\thelia\core\vendor\symfony\http-kernel\HttpKernel.php:139} ( )    ...\HttpKernel.php:139
10    0.3054    14108352    Thelia\Controller\Admin\AbstractCrudController->processUpdateAction( )    ...\HttpKernel.php:139
11    0.5907    20124272    Thelia\Controller\BaseController->validateForm( )    ...\AbstractCrudController.php:432
12    0.5916    20145808    Thelia\Core\Form\TheliaFormValidator->validateForm( )    ...\BaseController.php:242
13    0.5916    20145880    Symfony\Component\Form\Form->handleRequest( )    ...\TheliaFormValidator.php:53
14    0.5916    20146296    Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationRequestHandler->handleRequest( )    ...\Form.php:489
15    0.5918    20148616    Symfony\Component\Form\Form->submit( )    ...\HttpFoundationRequestHandler.php:116
16    0.6712    20200632    Symfony\Component\Form\Form->submit( )    ...\Form.php:567
17    0.6713    20201240    Symfony\Component\Form\Form->viewToNorm( )    ...\Form.php:627
18    0.6713    20201320    Symfony\Component\Form\Extension\Core\DataTransformer\ChoicesToValuesTransformer->reverseTransform( )    ...\Form.php:1182
19    0.6713    20201320    Symfony\Component\Form\ChoiceList\ArrayKeyChoiceList->getChoicesForValues( )    ...\ChoicesToValuesTransformer.php:74
20    0.6713    20201400    array_map ( )    ...\ArrayKeyChoiceList.php:131
21    0.6714    20201744    strval ( )

qu'est que qu'il faut que je modifie pour que ce module accepte la promo?
merci

Last edited by mike1000 (11-11-2019 13:45:25)

Offline


Tu utilises quelle version de PHP ?


OpenStudio Toulouse

Offline


php 5.6.18

j'avais installer uwamp pour tester differente version de php

mais quand je tape php -v
il met 7.2.7

mais j'ai mis php 5.6.18 dans uwamp
bon je vais verifier dans la config de uwamp pour avoir le bon php
MAIS quand je fais localhost/uwamp/phpinfo.php
il me met la 5.6.18 ????

je vais refaire une verification de ma version de php et si le pb continue je relancerais ici la suite

Last edited by mike1000 (10-10-2019 00:37:50)

Offline


je pense que j'ai reglé mon pb de version de php
maintenant quand je fais php -v j'ai 5.6.18 (cli)
et phpinfo.php m'affiche la 5.6.18
et j'ai tjrs le meme message d'erreur

Offline


Peux-tu poster une copie d'écran de l'écran de gestion de promotion, histoire qu'on voie ce que tu essaie de faire comme promo ?


OpenStudio Toulouse

Offline

Offline


J'ai eu exactement la même erreur (Thelia 2.3.5, PHP 7.1.33)

Le problème se situe au niveau du nom du champ 'categories'. Le code généré par la classe "/core/lib/Thelia/Form/Sale/SaleModificationForm" est le suivant :

<select id="categories" name="thelia_sale_modification[categories][][]" class="form-control " multiple="" size="10" aria-required="true" required="">]

En effectuant spécifiant le nom de l'attribut "name" dans la définition du formulaire, le problème est corrigé.

        ->add(
            'categories',
            'choice',
            [
                'required'    => true,
                'multiple'    => true,
                'choices'     => $this->getCategoriesIdArray(),
                'label'       => Translator::getInstance()->trans('Product categories'),
                'label_attr'  => [
                    'for'         => 'categories',
                    'help'        => Translator::getInstance()->trans('Select the categories of the products covered by this operation'),
                ],
                'attr' => [
                    'size' => 10,
                    'name' => 'categories', // Indication du nom de l'attribut, remplace le nom généré par défaut
                ]
            ]
        )

et le code généré devient

<select id="categories" name="thelia_sale_modification[categories][]" class="form-control " multiple="" size="10" aria-required="true" required="">]

Offline


salut
j'ai essayé ta methode ( ajouter 'name' => 'categories',) et ca ne marche pas.
par contre en fouillant sur le github , un certain Nicolas B. (je ne sais pas si on peut mettre son nom ici) a réussi a résoudre ce problème
je donne sa solution:
il faut editer le fichier templates/backOffice/default/sale-edit.html
et remplacer la ligne 145 <select {form_field_attributes field='categories'}>
par <select id="categories" name="{$name}" class="form-control" size="10" multiple aria-required="true" required>