On 5/4/2022 at 5:35 PM, Shapes said:OK, au cas où ça pourrait aider quelqu'un, j'avais tout simplement oublié d'ajouter la fonction pour récupérer la data :
public function hookActionCustomerGridQueryBuilderModifier(array $params) { $searchQueryBuilder = $params['search_query_builder']; $searchQueryBuilder->addSelect( 'c.`referrer`' ); }C'est OK maintenant.
Et si je complète cette fonction :
public function hookActionCustomerGridQueryBuilderModifier(array $params) { $searchQueryBuilder = $params['search_query_builder']; $searchCriteria = $params['search_criteria']; $searchQueryBuilder->addSelect( 'c.`referrer`' ); if ('referrer' === $searchCriteria->getOrderBy()) { $searchQueryBuilder->orderBy('c.`referrer`', $searchCriteria->getOrderWay()); } foreach ($searchCriteria->getFilters() as $filterName => $filterValue) { if ('referrer' === $searchCriteria->getOrderBy()) { $searchQueryBuilder->orderBy('c.`referrer`', $searchCriteria->getOrderWay()); } if ($filterName === 'referrer') { $searchQueryBuilder->andWhere("c.`referrer` = :referrer"); $searchQueryBuilder->setParameter('referrer', $filterValue); } } }La recherche fonctionne aussi !
Merci c'est ce qu'il me manquait aussi !
J'ai comme toi créé une nouvelle variable pour mon Customer. J'ai l'override de la classe, la modif de la Grid, et l'update qui fonctionne.
J'ai toutefois un souci dont tu auras probablement la solution !
Je n'arrive pas à afficher la valeur de mon objet sur la fiche Customer, alors que ça fonctionne sur la Grille. L'édition fonctionne aussi, il me manque seulement l'affichage de la valeur actuelle (si non vide). Ci-après ma fonction qui incrémente la ficher Customer
public function hookActionCustomerFormBuilderModifier(array $params) { //Récupération du form builder /** @var \Symfony\Component\Form\FormBuilder $formBuilder */ $formBuilder = $params['form_builder']; //Ajout de notre champ spécifique $formBuilder->add('new_value', //Cf génériques symonfy https://symfony.com/doc/current/reference/forms/types.html // et spécificiques prestashop https://devdocs.prestashop.com/1.7/development/components/form/types-reference/ \Symfony\Component\Form\Extension\Core\Type\TextType::class, [ 'label' => $this->l('New Value'), //Label du champ 'required' => false, //Requis ou non 'constraints' => [ //Contraintes du champs //cf. génériques symfony : https://symfony.com/doc/current/reference/constraints.html // Ou vous pouvez écrire la votre cf. https://symfony.com/doc/current/validation/custom_constraint.html new \Symfony\Component\Validator\Constraints\Length([ 'max' => 50, 'maxMessage' => $this->l('Max characters allowed : 50'), ]), ], // Texte d'aide 'help' => $this->l('My new value') ] ); //Ou surchargée ici // $params['data']['new_value'] = $params['data']['new_value']; //Il faut bien penser à mettre cette ligne pour mettre à jour les données au formulaire $formBuilder->setData($params['data']); }