在奏鸣曲管理员我有我的管理类工作的过滤器:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('client.name');
}
该过滤器将默认以匹配“包含”(如运营商)是这样的:
我想使用的过滤器“是等于”(=运算符)作为默认选项,而不是“含有”:
不幸的是我无法找到问题或SO,谷歌与此相关的答案,而索纳塔9.4文档过滤目前没有参考文件。
我怎样才能做到这一点?
我用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);
}
});
您可以通过覆盖变量覆盖默认筛选器选项$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
文章来源: Symfony - Set Sonata Admin filter operator to “is equal to” as default option