Hydrate entity com JoinColumns
Boa noite, pesquisei bastante e alguem poderia me informar como eu hidrato um array contendo vales de ids de outras tabelas para meu entity principal?
sendo que o array está assim!
array:5 [▼
"codigo" => "123"
"nome" => "123"
"empresa" => "1"
"funcao" => "13"
"salvar" => "Salvar"
<?php
namespace Corporativo\Form;
use Corporativo\Entity\Funcao;
use Corporativo\Filter\FuncionarioFilter;
use Corporativo\Service\FuncaoService;
use DoctrineORMModule\Form\Element\DoctrineEntity;
use DoctrineORMModule\Options\EntityManager;
use Zend\Di\ServiceLocator;
use Zend\Form\Form;
use Zend\ServiceManager\ServiceManager;
use Zend\Stdlib\Hydrator\ClassMethods;
class FuncionarioForm extends Form {
/*
* @var $entityManger \Doctrine\ORM\EntityManager
*/
public function __construct(\Doctrine\ORM\EntityManager $entityManager){
parent::__construct('funcionario');
$this->setAttribute('method', 'POST');
$this->setInputFilter(new FuncionarioFilter());
$this->add(
array(
'name' => 'codigo',
'type' => 'Text',
'options' => array(
'label' => 'Matrícula',
),
'attributes' => array(
'id' => 'codigo',
'class' => 'form-control'
)
)
);
$this->add(
array(
'name' => 'nome',
'type' => 'Text',
'options' => array(
'label' => 'Funcionário'
),
'attributes' => array(
'id' => 'nome',
'class' => 'form-control'
)
)
);
$this->add(
array(
'name' => 'empresa',
'type' => 'DoctrineORMModule\Form\Element\DoctrineEntity',
'options' => array(
'label' => 'Empresa',
'object_manager' => $entityManager,
'target_class' => 'Corporativo\Entity\Empresa',
'property' => 'nome',
),
'attributes' => array(
'id' => 'nome',
'class' => 'form-control'
)
)
);
$this->add(
array(
'name' => 'funcao',
'type' => 'DoctrineORMModule\Form\Element\DoctrineEntity',
'options' => array(
'label' => 'Funcao',
'object_manager' => $entityManager,
'target_class' => 'Corporativo\Entity\Funcao',
'property' => 'nome',
),
'attributes' => array(
'id' => 'funcao',
'class' => 'form-control',
),
)
);
}
}
<?php
namespace Corporativo\Entity;
use Doctrine\ORM\Mapping as ORM;
use Infra\Entity\InfraEntity;
/**
* Funcionario
*
* @ORM\Table(name="funcionario", indexes={@ORM\Index(name="IDX_7510A3CF6EDEF13D", columns={"funcao"})})
* @ORM\Entity
* @ORM\Entity(repositoryClass="Corporativo\Entity\FuncionarioRepository")
*/
class Funcionario extends InfraEntity {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ORM\Id
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="codigo", type="string", length=10, nullable=false)
*/
private $codigo;
/**
* @var string
*
* @ORM\Column(name="nome", type="string", length=255, nullable=false)
*/
private $nome;
/**
* @var \Corporativo\Entity\Funcao
*
* @ORM\ManyToOne(targetEntity="Corporativo\Entity\Funcao")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="funcao", referencedColumnName="id")
* })
*/
private $funcao;
/**
* @var \Corporativo\Entity\Empresa
*
* @ORM\ManyToOne(targetEntity="Corporativo\Entity\Empresa")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="funcao", referencedColumnName="id")
* })
*/
private $empresa;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set codigo
*
* @param string $codigo
*
* @return Funcionario
*/
public function setCodigo($codigo)
{
$this->codigo = $codigo;
return $this;
}
/**
* Get codigo
*
* @return string
*/
public function getCodigo()
{
return $this->codigo;
}
/**
* Set nome
*
* @param string $nome
*
* @return Funcionario
*/
public function setNome($nome)
{
$this->nome = $nome;
return $this;
}
/**
* Get nome
*
* @return string
*/
public function getNome()
{
return $this->nome;
}
/**
* Set funcao
*
* @param \Corporativo\Entity\Funcao $funcao
*
* @return Funcionario
*/
public function setFuncao(\Corporativo\Entity\Funcao $funcao = null)
{
$this->funcao = $funcao;
return $this;
}
/**
* Get funcao
*
* @return \Corporativo\Entity\Funcao
*/
public function getFuncao()
{
return $this->funcao;
}
/**
* Set empresa
*
* @param \Corporativo\Entity\Empresa $empresa
*
* @return Funcionario
*/
public function setEmpresa(\Corporativo\Entity\Empresa $empresa = null)
{
$this->empresa = $empresa;
return $this;
}
/**
* Get empresa
*
* @return \Corporativo\Entity\Empresa
*/
public function getEmpresa()
{
return $this->empresa;
}
}
]Discussão (0)
Carregando comentários...