doctrine2 - Zend Framework 2 Doctrine 2 one-to-many checkbox hydration -
i have manytomany broke onetomany , manytoone relationship. want build form has checkboxes instead of collection, , using 'doctrineobject' hydrator, not work , don't know going wrong.
i removed code below of other not related fields.
role entity:
/** * @orm\entity * @orm\table(name="roles") */ class rolesentity extends hemisentity { /** * @orm\id * @orm\column(type="integer"); * @orm\generatedvalue(strategy="identity") */ protected $id; /** * @orm\column(name="role_code",type="string") */ protected $rolecode; /** * @orm\onetomany(targetentity="rolespermissionsentity", mappedby="role", cascade={"persist"}) */ protected $rolepermissions; public function __construct() { $this->rolepermissions = new arraycollection(); } public function setrolepermissions($rolepermissions) { $this->rolepermissions = $rolepermissions; return $this; } public function addrolepermissions(collection $rolepermissions) { foreach ($rolepermissions $rolepermission) { $rolepermission->setrole($this); $this->rolepermissions->add($rolepermission); } } public function removerolepermissions(collection $rolepermissions) { foreach ($rolepermissions $rolepermission) { $rolepermission->setrole(null); $this->rolepermissions->removeelement($rolepermission); } } public function getrolepermissions() { return $this->rolepermissions; } } the manytomany table entity (it has more fields , broke it):
/** * @orm\entity * @orm\table(name="roles_permissions") */ class rolespermissionsentity extends hemisentity { /** * @orm\id * @orm\column(type="integer"); * @orm\generatedvalue(strategy="identity") */ protected $id; /** * @orm\manytoone(targetentity="rolesentity", inversedby="rolepermissions") * @orm\joincolumn(name="role_id", referencedcolumnname="id") **/ protected $role; /** * @orm\manytoone(targetentity="permissionsentity", inversedby="permissionroles") * @orm\joincolumn(name="permission_id", referencedcolumnname="id") **/ protected $permission; public function setrole($role) { $this->role = $role; return $this; } public function getrole() { return $this->role; } public function setpermission($permission) { $this->permission = $permission; return $this; } public function getpermission() { return $this->permission; } } my form this:
class roleform extends form implements inputfilterproviderinterface { public function __construct(objectmanager $objectmanager) { parent::__construct('role'); $this->sethydrator(new doctrinehydrator($objectmanager)) ->setobject(new rolesentity()); $this->add(array( 'type' => 'zend\form\element\hidden', 'name' => 'id' )); $this->add(array( 'type' => 'zend\form\element\text', 'name' => 'rolecode', 'options' => array( 'label' => 'role code' ), )); $this->add(array( 'name' => 'rolepermissions', 'type' => 'doctrinemodule\form\element\objectmulticheckbox', 'options' => array( 'label' => 'permissions', 'object_manager' => $objectmanager, 'target_class' => 'hemis\fnd\permissionsentity', 'property' => 'permissiondesc' ), )); $this->add(array( 'name' => 'submit', 'type' => 'submit', 'attributes' => array( 'value' => 'submit', ), )); } public function getinputfilterspecification() { return array( 'rolecode' => array( 'required' => false ), 'rolepermissions' => array( 'required' => true ) ); } } the problem when dump $role not contains rolepermissions , passed form not hydrated object. hope question clear.
any idea wrong code or there better way using checkboxes?
Comments
Post a Comment