public function __invoke(Field $field)
 {
     if (!$field->isType('reference')) {
         throw new Exception('The FilterReferenceAsText template can only be used on DB reference fields.');
     }
     $reference = $field->getOptionPairsReference();
     $titleColumn = $field->getOptionPairs()->detectTitleColumn();
     $field->assignHelperCallback('SelectFilter.FilterType', function () {
         return ['type' => 'text', 'options' => []];
     })->assignHelperCallback('SelectFilter.SelectModifier', function ($helper, Select $select, $conditionSetName, $queryVars) use($reference, $titleColumn) {
         $filter = new TextFilter($reference['table'], $titleColumn);
         return $filter->apply($select, $conditionSetName, $queryVars);
     });
 }