小编Nun*_*ira的帖子

symfony3:为具有多对一关系的列的实体创建表单

我有一个"任务"表,引用一个"Estados"表,其中包含从Tasks.taskestado列到Estados.estado的外键.

这是任务的相关XML映射:

<entity name="AppBundle\Entity\Tasks" table="TASKS" repository-class="AppBundle\Repository\TasksRepository">
<id name="taskid" type="bigint" column="TaskID">
  <generator strategy="IDENTITY"/>
</id>
...
<many-to-one field="taskestado" target-entity="Estados" fetch="LAZY">
  <join-columns>
    <join-column name="TaskEstado" referenced-column-name="Estado"/>
  </join-columns>
</many-to-one>
...
Run Code Online (Sandbox Code Playgroud)

而对于Estados:

<entity name="AppBundle\Entity\Estados" table="ESTADOS">
<id name="estado" type="string" column="Estado" length="15">
  <generator strategy="IDENTITY"/>
</id>
<field name="estadodescricao" type="string" column="EstadoDescricao" length="50" nullable="true">
  <options>
    <option name="fixed"/>
  </options>
</field>
...
Run Code Online (Sandbox Code Playgroud)

鉴于此,我正在尝试创建一个动作(novaAction())来创建任务.这是Controller代码:

public function novaAction(Request $request)
{
    $task = new Tasks();
    $em = $this->getDoctrine()->getManager();

    dump($task);
    #$task->setTaskEstado(new Estados());
    $form = $this->createForm(TasksType::class, $task);
    $form->handleRequest($request);

    if ($form->isSubmitted()) {
        if ($form->isValid()) {
            // Criar a tarefa …
Run Code Online (Sandbox Code Playgroud)

php symfony-forms symfony doctrine-orm

8
推荐指数
1
解决办法
1390
查看次数

标签 统计

doctrine-orm ×1

php ×1

symfony ×1

symfony-forms ×1