0

私は ZendFramework2 + Doctrine2 のものをセットアップしています。すべてがうまく機能しています。作成フォームをセットアップしましたが、必要なのはテーブルの関係を処理することです...

たとえば、メイン テーブルはincidenciasで、フィールドの 1 つはcategoria_idテーブルを参照するものです...を選択できるcategoriasフォーム、フィールドを取得する必要があり ます。selectcategorias.nombre

これは、incidenciasエンティティとcategoriasエンティティのコード、およびフォームのコードです...

インシデント エンティティ

/**
 * @var \Portal\Entity\Categorias
 *
 * @ORM\ManyToOne(targetEntity="Portal\Entity\Categorias")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="categoria_id", referencedColumnName="id")
 * })
 * @Annotation\Type("Zend\Form\Element\Select")
 * @Annotation\Required({"required":"true" })
 * @Annotation\Options({"label":"Categoria"})
 */
private $categoria;
/**
 * Set categoria
 *
 * @param \Portal\Entity\Categorias $categoria
 * @return Incidencias
 */
public function setCategoria(\Portal\Entity\Categorias $categoria = null)
{
    $this->categoria = $categoria;

    return $this;
}

/**
 * Get categoria
 *
 * @return \Portal\Entity\Categorias 
 */
public function getCategoria()
{
    return $this->categoria;
}

カテゴリ エンティティ

class Categorias
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=250, nullable=true)
     */
    private $nombre;



    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Categorias
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;

        return $this;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }
}

フォームコントローラー

public function addAction()
{
    $builder = new AnnotationBuilder();
    $form   = $builder->createForm(new Incidencias());

    $form->add(array(
        'name' => 'submit',
        'attributes' => array(
            'type'  => 'submit',
            'value' => 'Add',
            'id' => 'submitbutton',
        ),  
    ));

    $request = $this->getRequest();
    if($request->isPost())
    {
        $incidencia = new Incidencias();
        $form->setData($request->getPost());

        if($form->isValid())
        {
            $incidencia->exchangeArray($form->getData());

            return $this->redirect()->toRoute('incidencias');
        }
    }

    return array('form'=>$form);
}
4

0 に答える 0