Php Sonata FormMapper从整数字段添加链接
在尝试向表行添加元素时,此元素是表中的ID,其定义为整数。当我将它添加到FormMapper时,它显示为一个整数字段。我想把它显示为一个按钮,在另一个页面上编辑该位置 下面是MB/SiteBundle/Admin/LocationAdmin.php的一个片段Php Sonata FormMapper从整数字段添加链接,php,mysql,entity,sonata-admin,Php,Mysql,Entity,Sonata Admin,在尝试向表行添加元素时,此元素是表中的ID,其定义为整数。当我将它添加到FormMapper时,它显示为一个整数字段。我想把它显示为一个按钮,在另一个页面上编辑该位置 下面是MB/SiteBundle/Admin/LocationAdmin.php的一个片段 protected function configureFormFields(FormMapper $formMapper) { $id = $this->getSubject()->getId(); $options
protected function configureFormFields(FormMapper $formMapper)
{
$id = $this->getSubject()->getId();
$options = array('required' => false);
$options['help'] = '<a href="/admin/mb/site/location/' . $id. '/edit">';
$formMapper
->add('year')
->add('duns_number')
->add('address_1')
->add('address_2')
->add('city')
->add('state')
->add('zip')
->add('type')
->add('isPrimary', null, array('required' => false))
->add('numEmployees')
->add('numCoveredEmployees')
->add('benefitOption')
->add('freeformBenefit1', null, array('label' => "benefit_4c_description"))
->add('freeformBenefit2', null, array('label' => "benefit_4c_whyappropriate"))
->add('id', null, $options)
->end()
->with('Contact Info')
->add('cbc', 'sonata_type_admin', array('delete' => false, 'label' => false, 'required' => false, 'btn_add' => false))
->end()
;
}
在行的最后一个td表中,我希望看到一个指向位置页面的链接,正如我在help属性中所说的那样。thx呈现按钮很容易,但它会触发表单,而不是重定向到新页面(后者会中断用户体验,因为按钮是对操作的调用,而不是链接) 使用自定义按钮 您需要创建一个自定义表单类型并呈现自定义按钮(作为
,而不是
)。然后,您可以轻松设置所需的URL并呈现它
使用内置行为
另一种方法(如果实体相互认识,并且有管理员注册):使用sonata\u type\u model\u列表
$formMapper
->add('location', 'sonata_type_model_list', array('btn_add' => false, 'btn_delete' => false);
这不会呈现按钮,但会呈现Sonata的列表元素以供参考,也可以单击。有人知道吗?
$formMapper
->add('location', 'sonata_type_model_list', array('btn_add' => false, 'btn_delete' => false);