lundi 30 mars 2015

Symfony2 FOSUserBundle merge resetPasswordform with custom form

I am trying to create a form by merging 2 form types as following.


Teacher Entity that has a one to one relation with User Entity.


I am using FOSUserBundle and i want to merge the ResettingFormType with my custom TeacherFormType, to end up with a form that both fields from my custom & fos reset password form.


1- Teacher Entity:



/**
* @var \User
*
* @ORM\OneToOne(targetEntity="ITJari\UserBundle\Entity\User", fetch="EAGER")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*
*/
private $user;

public function getUser() {
return $this->user;
}


public function setUser($user) {
$this->user = $user;
return $this;
}


2- Extending FOS Reset password:



namespace ITJari\SchoolBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class ResettingFormType extends AbstractType {

public function buildForm(FormBuilderInterface $builder, array $options) {

}

public function getParent() {
return 'fos_user_resetting';
}

public function getName() {
return 'ragab';
}

}


3- Teacher Form Type



namespace ITJari\SchoolBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class TeacherFormType extends AbstractType {

public function buildForm(FormBuilderInterface $builder, array $options) {
}

public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'data_class' => 'ITJari\SchoolBundle\Entity\Teacher',
));
}

public function getParent() {
return 'fos_user_resetting';
}

public function getName() {
return 'teacherform';
}

}


4- In controller:



$teacher = new \ITJari\SchoolBundle\Entity\Teacher();
$teacher->setUser($user);
$form = $this->createForm('teacherform', $teacher);


But i got the following error:



Neither the property "plainPassword" nor one of the methods "getPlainPassword()", "isPlainPassword()", "hasPlainPassword()", "__get()" exist and have public access in class "ITJari\SchoolBundle\Entity\Teacher". 500 Internal Server Error - NoSuchPropertyException



Aucun commentaire:

Enregistrer un commentaire