繁体   English   中英

sonataadmin包筛选字段和案例敏感性不起作用。 没有名为“ doctrine_phpcr_string”类型的附加服务

[英]sonataadmin bundle FILTERING FIELDS AND CASE SENSITIVITY Not working . No attached service to type named `doctrine_phpcr_string`

我尝试使用sonataadmin捆绑包和symfony 2创建不区分大小写的过滤,但出现错误。

"symfony/symfony": "2.6.*"
"sonata-project/admin-bundle": "^2.3",

这是管理员类

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
        ->add('name', 'doctrine_phpcr_string', array(
            'compare_case_insensitiv' => false
        ))

    ;
}

这是文档

https://sonata-project.org/bundles/doctrine-phpcr-admin/master/doc/reference/filter_field_definition.html#filtering-fields-and-case-sensitivity

这是我的错误

No attached service to type named `doctrine_phpcr_string`

这是解决方案:)

  protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            ->add('name', 'doctrine_orm_callback',
                array('callback'   => array($this, 'yourFunction'),
                    'field_type' => 'search'),
                null,
                array('pattern' => '^[A-Za-z0-9]{1,12}$')
            );

    }

    public function yourFunction($queryBuilder, $alias, $field, $value)
    {
        if (!$value['value']) {
            return;
        }

        $queryBuilder
            ->andWhere("LOWER(u.name) LIKE LOWER(:field)")
            ->setParameter('field', "%{$value['value']}%");

        return true;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM