Entry

Better Model Searching in ExpressionEngine 3.4

by: Pascal Kriete on: 8/12/2016

With ExpressionEngine 3.4 we’ve added a new search() function to our models. It’s a clean API that developers will love. No more debugging of LIKE queries or complex string pre-processing. In the past you may have done something like this:

ee()->db
    ->from('channel_titles')
    ->join('channel_data', 'exp_channel_titles.entry_id = exp_channel_data.entry_id ', 'left');

$words = explode(' ', $search);

foreach ($words as $word)
{
    ee()->db->like('title', $word);
}

$entries = ee()->db->get();

Now all you need is this:

$entries = ee('Model')
    ->get('ChannelEntry')
    ->search('title', $search)
    ->all();

Under the hood it’s fully packed with the things your users expect from search. Quoted strings are treated as phrase searches and minus signs can be used to exclude words or phrases. A consistent, easy to implement experience.

Happy finding!

.(JavaScript must be enabled to view this email address) or share your feedback on this entry with @ellislab on Twitter.

ExpressionEngine News

#eecms, #events, #releases