0
我有2个实体,InProveedorProducto有一个id_producto字段,InOrdenCompraDetalle有一个采购订单的详细信息,包括id_producto字段。 InProveedorProducto表中包含id_producto,但也包含id_proveedor,这意味着此表包含每个提供者的产品列表。如何从ManyToMany关系保存字段? Symfony2
所以,我喜欢的类型形式:
class InOrdenCompraDetalleType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
protected $idProveedor;
protected $idEmpresaa;
public function __construct ($id_proveedor,$id_empresaa)
{
$this->idProveedor = $id_proveedor;
$this->idEmpresaa = $id_empresaa;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('ordenCompra')
->add('productoOc', 'entity', array(
'class' => 'NivalInventarioBundle:InProveedorProducto',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.idProveedor = '.$this->idProveedor)
->orderBy('u.productoO', 'ASC');
},
'choice_label' => function ($displayname) {
return $displayname->getDisplayName();},
'by_reference' => true,
'expanded' => false,
'placeholder' => 'Seleccione una opción',
'mapped' => true,
'multiple' => false,
))
->add('cantidad');
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Nival\InventarioBundle\Entity\InOrdenCompraDetalle'
));
}
/**
* @return string
*/
public function getName()
{
return 'nival_inventariobundle_inordencompradetalle';
}
}
我的实体InProveedorProducto
class InProveedorProducto
{
/**
* @ORM\ManyToMany(targetEntity="InOrdenCompraDetalle", inversedBy="productoOc")
* @ORM\JoinTable(name="InCompraDetalleProveedorProducto")
*/
protected $producto;
我的实体InOrdenCompraDetalle
lass InOrdenCompraDetalle
{
/**
* @ORM\ManyToMAny(targetEntity="InProveedorProducto", mappedBy="producto")
*/
protected $productoOc;
可否请你让我知道为什么我得到这个错误时,尝试保存到数据库:
Catchable Fatal Error: Argument 1 passed to Doctrine\Common\Collections\ArrayCollection::__construct() must be of the type array, object given, called in C:\xampp\htdocs\nival7\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 555 and defined
请帮