Bonjour
j’’ai créé un formulaire EntityType comme suit qui fonctionne bien:
{
$builder
->add('designationd', EntityType::class,[
'class' => Fourniture::class,
'query_builder' => function (EntityRepository $er){
return $er->createQueryBuilder('f')
-> orderBy( 'f.designation', 'ASC');
},
'choice_label' => function($allChoices, $currentChoiceKey){
return $allChoices->getReference(). " " .$allChoices->getMarque(). " " .$allChoices->getDesignation(). " " .$allChoices->getPvHt() . " €";
},
'label' => 'Dédignation :']
)
->add('quantited')
->add('remised');
}
Dans mon controller je veux enregistrer mon formulaire mais en écrivant au passage la valeur du champ puHT qui ne figure pas dans le formulaire:
$ligneDevi = new LigneDevis();
$form = $this->createForm(LigneDevisType::class, $ligneDevi);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$ligneDevi->setAffaire($affaire);
// ;dump($form);die();
$ligneDevi->setPrixUnitaireHtd(???????????????????????????);
$manager->persist($ligneDevi);
$manager->flush();
Le dump($form) qui est commenté affiche bien le puHt (avant-avant derdière ligne):
LigneDevisController.php on line 53:
Form {#963 ▼
-config: FormBuilder {#1051 ▼
-children: []
-unresolvedChildren: []
#locked: true
-dispatcher: ImmutableEventDispatcher {#939 ▶}
-name: "ligne_devis"
-propertyPath: null
-mapped: true
-byReference: true
-inheritData: false
-compound: true
-type: ResolvedTypeDataCollectorProxy {#853 ▶}
-viewTransformers: []
-modelTransformers: []
-dataMapper: PropertyPathMapper {#918 ▶}
-required: true
-disabled: false
-errorBubbling: true
-emptyData: Closure(FormInterface $form) {#858 ▶}
-attributes: array:1 [▶]
-data: LigneDevis {#685 ▼
-id: null
-referenced: null
-designationd: Fourniture {#1061 ▼
-id: 5
-marque: "NKE"
-refFournisseur: null
-designation: "1 Multidisplay portrait composite blanc (réf:061) noir"
-pvHt: 295.0
-pvTtc: 354.0
-reference: "31-33-062"
Comment ecrire la ligne $ligneDevi->setPrixUnitaireHtd(???????????????????????????); pour recuperer le pvHt: 295.0 du dump pour mettre à jour le champ puht qui ne figure pas dans le formulaire.
Bien entendu il n'y a aucune relation entre les 2 entités (Celle que jemet a jour et celle qui génère la liste déroulante)
Meerci de votre aide