我正在努力解决这个问题而无法找到解决方案。我今天刚搬到SonataAdminBundle。
我想为复选框类型选中默认值,但只是在表单中创建SonataAdminBundle。在普通的Controller中,我可以定义具有不同形式值的创建和编辑功能。但是在SonataAdminBundle中,创建和编辑表单似乎只有一个功能:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('aktif', 'checkbox', array('required' => false))
;
}
我尝试添加'attr' => array('checked' => 'checked')
,但在编辑数据时也会发生这种情况。
答案 0 :(得分:3)
您可以使用Admin类中的getSubject()函数来查看您是否在创建或编辑表单中。
这样的事情:
if (!$this->getSubject()->getId()) {
// this is the create form
$attrs = array('checked' => 'checked');
}
else {
// this is the edit form
$attrs = array();
}
你写了选项:
'attr' => $attrs
祝你好运!
答案 1 :(得分:0)
如果您总是遇到此问题,可以采用以下解决方案:
在您的实体类中,在__construct方法中,插入以下代码:
$this->aktif = true;
答案 2 :(得分:0)
这里的答案是正确的,但最佳做法是在管理员类中覆盖getNewInstance
,如下所示:
public function getNewInstance()
{
$instance = parent::getNewInstance();
$instance->setAktif(true);
return $instance;
}