3373 Posts in 998 Topics by 712 members
|Go to End|
7 November 2009 at 1:19am
at the moment I'm working on some portal and encountered a problem with scaffolded search forms. I'm using a code example from the wiki to create a search form in my application.
Everything works fine, except the fact that I only get one field for the search. As far as I understood the magic, there should be one search field per defined (whitelist) field in my getCustomSearchField() method.
I did some debug on the $fields with Debug::dump() which showed me a larger object structure where I could only find the "title" and some recursions, but not the other defined fields.
I double-checked my database declarations in the model and all fields are there, icluding the correct data types.
public function getCustomSearchContext()
$fields = $this->scaffoldSearchFields( array(
'restrictFields' => array(
$filters = array(
'Title' => new PartialMatchFilter( 'Title' ),
'Content' => new PartialMatchFilter( 'Content' ),
'Instrument' => new ExactMatchFilter( 'Instrument' ),
'Plz' => new PartialMatchFilter( 'Plz' ),
'Location' => new ExactMatchFilter( 'Location' ),
'Ambition' => new ExactMatchFilter( 'Ambition' ),
'ExpiryDate' => new LessThanFilter( 'ExpiryDate' ),
return new SearchContext(
7 November 2009 at 7:28am
I just came across this problem yesterday. You have to declare the searchable fields first in your controller. (At least, that's what worked for me-- someone else may offer a cleaner explanation):
static $searchable_fields = array(
'Title' => 'PartialMatchFilter',
'Content' => 'PartialMatchFilter',
'Instrument' => 'ExactMatchFilter',
'Plz' => 'PartialMatchFilter',
'Location' => 'PartialMatchFilter',
Does this help?
7 November 2009 at 9:21pm Last edited: 9 November 2009 10:18pm
it worked! I tested it with the additional $searchable_fields array - that did the trick.
So I will comment on the tutorial mentioned above, that the definition of searchable fields is needed (SS 2.3.3).
|Go to Top|