Buenos días
Estoy intentando implementar un campo autoplente ManyToMany con el bundle sonataadmin.
entidad students
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\AccountsHeader", mappedBy="student", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $accounts;
public function __construct()
{
$this->accounts = new ArrayCollection();
}
/**
* Get accounts
*
* @param \Doctrine\Common\Collections\ArrayCollection
*/
public function getAccounts()
{
return $this->accounts;
}
/**
* Add accounts
*
* @param AppBundle\Entity\AccountsHeader $addAccounts
*/
public function addAccounts(AccountsHeader $addAccounts)
{
$addAccounts->addUser($this);
$this->accounts->add($addAccounts);
}
/**
* Remove accounts
*
* @param AppBundle\Entity\AccountsHeader $accounts
*/
public function removeAccounts(AccountsHeader $accounts)
{
$accounts->removeStudent($this);
}
Entidad AccountsHeader
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Students", inversedBy="accounts")
* @ORM\JoinTable(name="AccountsDetails",
* joinColumns={@ORM\JoinColumn(name="accId", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="studentId", referencedColumnName="id")}
* )
*/
private $student;
public function __construct() {
$this->student = new ArrayCollection();
}
/**
* Get student
*
* @param \Doctrine\Common\Collections\ArrayCollection
*/
public function getStudent()
{
return $this->student;
}
/**
* addStudent
*
* @param AppBundle\Entity\Students $addStudents
*/
public function addStudent(Students $addStudents)
{
$this->student->add($addStudents);
}
/**
* Remove student *
* @param AppBundle\Entity\Students $students
*/
public function removeStudent(Students $students)
{
$this->student->removeElement($students);
}
Clase AccountHeaderAdmin
protected function configureFormFields(FormMapper $mapper)
{
$mapper
->add('student', 'sonata_type_model_autocomplete', array(
'property' => 'firstName',
'multiple' => true,
'required' => false,
'label' => 'lalala'
), array(
'property' => 'firstName'
))
;
}
Clase StudentsAdmin
protected function configureDatagridFilters(DatagridMapper $mapper)
{
//$this->setTranslationDomain('adminStudents');
$mapper
->add('firstName', null, array('label' => 'students.entity.firstName'))
->add('surname', null, array('label' => 'students.entity.surname'))
;
}
Al realizar una búsqueda de un estudiante se ejecuta la llamada Ajax pero me devuelve el error "The field "student" does not exist."
Le he dado muchas vueltas pero no consigo ver que puedo haber hecho mal.
Agradecería una ayuda