Hey, gracias por la respuesta masterpuppet. Esa fase ya la he superado, aunque no lo hice como tu me sugieres. Lo dejé como estaba pero cree una clase Entity Cart, con propiedades id, quantity y delete (el nombre de los forms) y funciona perfecto.
Lo que ahora no logro obtener es pasarle unos datos para que pinte las cantidades, e ids del cart.
Lo hice pásandole en el constructor el cart en forma de array, todo perfecto, pero o me muestra "Array" en el value, o si hago un foreach me muestra solo el último valor. Alguna idea de como pasar datos al builder?
Tengo esto, (las dos posibilidades. No funciona ni con el bucle en el constructor, ni con él en el builder). Alguien tiene una idea?
Gracias
Código PHP:
namespace srcForm;
use SymfonyComponentValidatorConstraints as Assert;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
class Quantity extends AbstractType{
public $cart;
public $id = array();
public $cantidad = array();
function __construct($cart)
{
$this->cart = $cart;
foreach ($this->cart as $id => $cantidad) {
$this->id[] = $id;
$this->cantidad[] = $cantidad;
}
}
public function buildForm(FormBuilderInterface $builder, array $options){
foreach ($this->id as $id) {
$builder->add('id', 'collection', array(
'type' => 'hidden', 'options' => array(
'attr' => array('value' => (string)$id),
)));
}
$builder->add('quantity', 'collection', array(
'type' => 'integer', 'options' => array(
'attr' => array('value' => (int)$this->cantidad),
)));
$builder->add('delete', 'collection', array(
'type' => 'integer', 'options' => array(
'attr' => array('value' => 0),
)));
}
public function getName(){
return "quantityform";
}
}