2015-02-24 63 views
1

選定的選項我在表格下面FormBuilder/* Type.php類:Symfony2的表單字段類型的實體不設置在形式編輯

<?php 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('tpmTargetId', null, array('label' => 'Target', 'required' => true)) 

     ->add('tpmSourcePropertyId', 'entity', array('label' => 'Global property', 'class' => 'TI\ML\SyncBundle\Entity\MlProperties')) 

    ; 
} 

的問題是與現場tpmSourcePropertyId,創建新條目時,它會在下拉字段中顯示正確的選項,並在保存時插入正確的ID,但在嘗試編輯該條目時,下拉列表默認爲選項#1而不是保存的ID。

如果我呈現字段的類型文本,它會顯示存儲的正確ID。我似乎this question但我似乎已經在使用建議的解決方案。

我能做些什麼來調試呢?謝謝!

---------修訂

\設置\原則\ MlTargets.orm.yml

tarEmpPropertyId: 
     type: integer 
     nullable: false 
     unsigned: true 
     comment: '' 
     column: tar_emp_property_id 

實體\ MlTargets.php

/** 
* @var integer 
*/ 
private $tarEmpPropertyId; 


/** 
* Set tarEmpPropertyId 
* 
* @param integer $tarEmpPropertyId 
* @return MlTargets 
*/ 
public function setTarEmpPropertyId($tarEmpPropertyId) 
{ 
    $this->tarEmpPropertyId = $tarEmpPropertyId; 

    return $this; 
} 

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

回答

2

當你聲明一個屬性時,你的意思是引用一個對象。

在數據庫中,該列將保存對象的ID,但symfony會加載它的參考,你將操縱對象

所以,你可以嘗試

->add('tpmSourceProperty', 'entity', array('label' => 'Global property', 'class' =>'TI\ML\SyncBundle\Entity\MlProperties')) 
+0

謝謝你,如果我刪除的ID部,然後我得到屬性的錯誤未找到。我更新了這個問題,並在YML和Entity文件中添加了更多信息。謝謝!。 – 2015-02-24 23:09:28

+0

我認爲你只需要設置你的下拉菜單的*默認選項*爲*加載的id *。 – rLinhares 2015-02-25 12:39:38

+0

謝謝,但我怎麼能在這種情況下訪問加載的ID?那樣就好了! – 2015-02-25 14:06:51

相關問題