SonataNewsBundle中的默认值CommentAdmin为:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('name')
->add('email')
->add('message')
;
}
在受保护的函数configureFormFields(FormMapper $ formMapper)中:
protected function configureFormFields(FormMapper $formMapper)
{
if (!$this->isChild()) {
$formMapper->add('post', 'sonata_type_model_list');
// $formMapper->add('post', 'sonata_type_admin', array(), array('edit' => 'inline'));
}
$commentClass = $this->commentManager->getClass();
$formMapper
->add('name')
->add('email')
->add('url', null, array('required' => false))
->add('message')
->add('status', 'choice', array('choices' => $commentClass::getStatusList(), 'expanded' => true, 'multiple' => false))
;
}
我尝试添加到过滤器:
->add('status', null, array('label' => 'Status'), null, array('expanded' => true, 'multiple' => true))
但是抛出异常:
The options "expanded", "multiple" do not exist.
我也尝试过: - > add('status','doctrine_orm_callback',array(
'callback' => function($queryBuilder, $alias, $field, $value) {
if (!$value) {
return;
}
$queryBuilder->andWhere($alias . '.status = :status');
$queryBuilder->setParameter('status', $value);
return true;
},
'field_type' => 'choice'
))
现在显示错误,但select为空。我如何添加此列表状态? 我从documentation
获得了示例也许更好的方法呢?
答案 0 :(得分:0)
通过调用add()方法给出了错误的参数顺序。 请尝试以下方法:
$filters->add('status', null, array(), 'choice', array('choices' => $commentClass::getStatusList(), 'expanded' => true, 'multiple' => false))
表格选项在第5个参数上设定。