2016-04-30 55 views
0

我有一個實體的代碼通過的ArrayCollection使用:如何設置存儲值在buildForm實體功能(Symfony2的)

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('imageFile',VichImageType::class, array(
      'label' => false, 
      'required'  => false, 
      'allow_delete' => true, // not mandatory, default is true 
      'download_link' => true, // not mandatory, default is true 
     )); 
     $builder->add('weight','hidden',array(
      'attr' => array(
       //'value' =>'__name__', 
       'class' => 'weight' 
      ) 
     )); 
    } 

當buildForm被稱爲一個「新的行動」我想的是, 「默認值」被設置爲「名稱」。但如果我分解線

//'value' =>'__name__', 

此設置也是爲「編輯操作」。

如何訪問此「條目」的「存儲」值以檢查「我正處於」新操作「還是」編輯操作「?

回答

1

來設置實體默認值最簡單的方法/文檔是實體類:

/** 
* @ORM\Column(type="string") 
*/ 
protected $weight = 'name'; 

empty_data應在表單生成工作:

$builder->add('weight','hidden',array(
     'empty_data' => 'name', 
     'attr' => array(
      'class' => 'weight' 
     ) 
    )); 
0

如何訪問到這個「條目」的「存儲」值檢查如果我是 在「新行動」或「編輯行動」?

你應該分離行動以知道什麼是確切的上下文。

否則,您可以使用表單模型數據來檢查實體的id屬性以獲取操作的上下文。然後你可以用表單事件修改表單。

參考文獻:

http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html http://symfony.com/doc/current/components/form/form_events.html

0

ü可以設置通過

->add('myfield', 'text', array(
    'label' => 'Field', 
    'data' => 'Default value' 
)) 

->add('myfield', 'text', array(
'label' => 'Field', 
'choices' => array() 

)默認值) 通過一個數組(前爲下拉菜單) ,全部最好

相關問題