В sonata admin У меня есть рабочий фильтр в моем классе admin:
protected function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper ->add('client.name'); }
Фильтр по умолчанию будет соответствовать «содержит» (оператор LIKE) следующим образом:
Я бы хотел, чтобы фильтр использовал «равно» (= оператор) в качестве параметра по умолчанию вместо «содержит»:
К сожалению, я не мог найти ответы на вопросы или ответы, связанные с этим, в SO, google и в фильтрах Sonata docs 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