Estoy usando symfony2 y createForm para obtener los datos http post. Después de bruja que hacer:

$Data = (array) $form->getData();

Y me sale:

array (size=1)
  '�Far\MT\AccountBundle\Entity\Movement�toAccount' => int 3

No creo que este es el comportamiento normal para estos casos, cualquier sugerencias?

la toAccount debe ser el índice completo de nombres.

No era capaz de reproducir las condiciones en un caso de prueba para la cli:

<?php

namespace A;

class MyClass
{
    public $id;
    public $name;
    public $age;
}

$object = new MyClass();
$object->name = "Andre";
$object->id   = 1;
$object->age  = 30;

var_dump($object);

$Ar = (array) $object;
var_dump($Ar)

Esto anteriormente trabajó en aceptar.

He utilizado esta solución:

//comment
$Data = $form->getData();
$obj = new \ReflectionObject($Data);
$props = $obj->getProperties();

$propname = array();
foreach ($props as $prop) {

    $tmp = "get".ucfirst($prop->name);

    if (($res = $Data->$tmp() )!== null) {
        $propname[$prop->name] = $res;
    }
}
$tmpSearch = $propname;

Voy a limpiar después.

1 Comentario

  1. 2

    Puede utilizar Symfony normalizador de la clase, como tu proponer fallará cuando usted tiene campos en el formulario el nombre con el carácter de subrayado como «facility_id’, pero su setter se llama facilityId

    <?php
    $data = $form->getData();       
    $normalizers = new \Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer();
    $norm = $normalizers->normalize($data);
    print_r($norm);

    usted obtendrá una salida como

    Array ( [fullname] => fullnameVal [email] => [email protected].com [phoneNumber] => 5554444 [facilityId] => 123132 )

Dejar respuesta

Please enter your comment!
Please enter your name here