gpt4 book ai didi

php - Sonata FormMapper 从整数字段添加链接

转载 作者:行者123 更新时间:2023-11-29 19:12:44 24 4
gpt4 key购买 nike

尝试向表行添加一个元素,该元素是表中的 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 上,希望看到指向位置页面的链接,如我所述的帮助属性上所示。谢谢

最佳答案

渲染按钮很容易,但它会触发您的表单而不是重定向到新页面(后者会破坏用户体验,因为按钮是号召性用语,而不是链接)。

使用自定义按钮

您需要创建自定义 FormType 并呈现自定义按钮(如 <a/> ,而不是 <button/> )。然后您可以轻松设置所需的 URL 并渲染它。

使用内置行为

另一种方法(如果实体彼此认识并且有管理员为其注册):使用 sonata_type_model_list

$formMapper
->add('location', 'sonata_type_model_list', array('btn_add' => false, 'btn_delete' => false);

这不会呈现按钮,但会呈现索纳塔的列表元素以供引用,该元素也可单击。

关于php - Sonata FormMapper 从整数字段添加链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42957720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com