繁体   English   中英

Symfony - 将 Sonata Admin 过滤器运算符设置为“等于”作为默认选项

[英]Symfony - Set Sonata Admin filter operator to "is equal to" as default option

在奏鸣曲管理中,我的管理类中有一个工作过滤器:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
        ->add('client.name');
}

过滤器将默认匹配“包含”(LIKE 运算符),如下所示:

在此处输入图像描述

我希望过滤器使用“等于”(= 运算符)作为默认选项,而不是“包含”:

在此处输入图像描述

不幸的是,我在 SO、google 中找不到与此相关的问题或答案,而且Sonata docs 9.4 过滤器目前没有记录。

我怎样才能做到这一点?

我用 JQuery 做到了:

////This function is used for settings all the filter
////in the default views
$("select").find("option").each(function() {
    var ArrayClasses = $(this).parent().attr('class').split(' ');
    var IsFilter = false;
    $.each(ArrayClasses, function(i, value){
        if (value === 'sonata-filter-option')
            IsFilter = true;
    });
    if ($(this).val() === '3' && IsFilter) {
        var HtmlStr = "<span class='select2-chosen'>is iqual to</span>" +
                      "<abbr class='select2-search-choice-close'></abbr>" +
                      "<span class='select2-arrow'><b></b></span></a>";
        $(this).attr("selected", "selected");
        var WrapId = $(this).parent().prev().attr('id');
        $("#" + WrapId + " a.select2-choice").html(HtmlStr);
    }
});

您可以通过覆盖变量$datagridValues来覆盖默认过滤器选项

protected $datagridValues = array(
        'email' => array(
            'type' => 3,
            'value' => ''
        )
    );

'type' => 3表示它equal to

隔了好久才发。 您可以通过覆盖变量$datagridValues来覆盖默认过滤器选项

protected $datagridValues = array(
        'email' => array(
            'type' => 3,
            'value' => ''
        )
    );

'type' => 3表示它equal to

暂无
暂无

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

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