尝试向表行添加元素时,此元素是表中的ID,并定义为整数。当我将它添加到FormMapper时,它显示为整数字段。我想将其显示为在另一个页面上编辑该位置的按钮。
以下是MB / SiteBundle / Admin / LocationAdmin.php的片段
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()
;
}
现在下面是MB / SiteBundle / Entity / Location.php的片段
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
在行表的最后一个td,我希望看到一个指向位置页面的链接,就像我说的帮助属性一样。 THX
答案 0 :(得分:0)
渲染按钮很简单,但它会触发您的表单而不是重定向到新页面(后者会破坏UX,因为按钮是号召性用语,而不是链接)。
您需要创建自定义FormType并呈现自定义按钮(<a/>
,而不是<button/>
)。然后,您可以轻松设置所需的URL并进行渲染。
另一种方式(如果实体彼此了解并且有注册的管理员):使用sonata_type_model_list
$formMapper
->add('location', 'sonata_type_model_list', array('btn_add' => false, 'btn_delete' => false);
这不会呈现按钮,但会为可引用的引用呈现Sonata的list-element。