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'
))
これでエラーが表示されますが、選択は空です。このリストのステータスを追加するにはどうすればよいですか? ドキュメントから例を取得します
多分これのためのより良い方法ですか?