遵循此文档
https://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_virtual_field.html
我试着这样做
<?php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
.....
->add('tancar', 'checkbox',array(
'virtual_field' => true
))
有这个错误
选项“virtual_field”不存在。定义的选项包括:“action”,“allow_extra_fields”,“attr”,“auto_initialize”,“block_name”,“by_reference”,“compound”,“constraints”,“csrf_field_name”,“csrf_message”,“csrf_protection”,“csrf_token_id “,”csrf_token_manager“,”data“,”data_class“,”disabled“,”empty_data“,”error_bubbling“,”error_mapping“,”extra_fields_message“,”horizontal_input_wrapper_class“,”horizontal_label_class“,”horizontal_label_offset_class“,”inherit_data“, “invalid_message”,“invalid_message_parameters”,“label”,“label_attr”,“label_format”,“label_render”,“mapped”,“method”,“post_max_size_message”,“property_path”,“required”,“sonata_admin”,“sonata_field_description “,”sonata_help“,”translation_domain“,”trim“,”upload_max_size_message“,”validation_groups“,”value“。
怎么了?
你可以试试这个:
->add('_action', null, [
'virtual_field' => true,
'actions' => [
'edit' => [],
'delete' => [],
],
]);
因为virtual_field
适用于_action
或batch
。在文档中“包括各种Mappers中的某些字段不依赖于模型中的任何实际字段(例如,_action或batch)。”
因为看起来这个选项在listMapper中使用,我已经解决了在实体中创建这个方法的问题:
<?php
public function getTancar()
{
return false;
}
public function setTancar($value)
{
}
然后,我可以在控制器或Admin类中获取此参数(例如,postUpdate方法)