Symfony的 - 集索纳塔联系过滤器运算符“等于”为默认选项(Symfony - Set Son

2019-10-19 06:53发布

在奏鸣曲管理员我有我的管理类工作的过滤器:

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

该过滤器将默认以匹配“包含”(如运营商)是这样的:

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

不幸的是我无法找到问题或SO,谷歌与此相关的答案,而索纳塔9.4文档过滤目前没有参考文件。

我怎样才能做到这一点?

Answer 1:

我用jQuery做到了:

//This function is used for setting all the filters
//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);
    }
});


Answer 2:

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

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

'type' => 3表示其equal to



Answer 3:

很长一段时间后发布。 您可以通过覆盖变量覆盖默认筛选器选项$datagridValues

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

'type' => 3表示其equal to



文章来源: Symfony - Set Sonata Admin filter operator to “is equal to” as default option