Skip to content

Commit 24dc596

Browse files
committed
added 'startswith', 'endswith' and 'contains' (='like') as condition options
1 parent 9417dd2 commit 24dc596

File tree

2 files changed

+34
-10
lines changed

2 files changed

+34
-10
lines changed

models/behaviors/filtered.php

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,36 @@ function beforeFind(&$Model, $query)
194194
continue;
195195
}
196196

197-
if ($options['condition'] == 'like')
197+
switch ($options['condition'])
198198
{
199-
$query['conditions'][$realFilterField.' like'] = '%'.$values[$fieldModelName][$fieldName].'%';
200-
}
201-
else if ($options['condition'] == '=')
202-
{
203-
$query['conditions'][$realFilterField] = $values[$fieldModelName][$fieldName];
204-
}
205-
else
206-
{
207-
$query['conditions'][$realFilterField.' '.$options['condition']] = $values[$fieldModelName][$fieldName];
199+
case 'like':
200+
case 'contains':
201+
{
202+
$query['conditions'][$realFilterField.' like'] = '%'.$values[$fieldModelName][$fieldName].'%';
203+
}
204+
break;
205+
case 'startswith':
206+
{
207+
$query['conditions'][$realFilterField.' like'] = $values[$fieldModelName][$fieldName].'%';
208+
}
209+
break;
210+
case 'endswith':
211+
{
212+
$query['conditions'][$realFilterField.' like'] = '%'.$values[$fieldModelName][$fieldName];
213+
}
214+
break;
215+
case '=':
216+
{
217+
$query['conditions'][$realFilterField] = $values[$fieldModelName][$fieldName];
218+
}
219+
break;
220+
default:
221+
{
222+
$query['conditions'][$realFilterField.' '.$options['condition']] = $values[$fieldModelName][$fieldName];
223+
}
224+
break;
208225
}
226+
209227
break;
210228
case 'select':
211229
if (strlen(trim(strval($values[$fieldModelName][$fieldName]))) == 0)

tests/cases/mock_objects.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,10 @@ class DocumentTestsController extends Controller
9494
function index()
9595
{
9696
}
97+
98+
// must override this or the tests never complete..
99+
// @TODO: mock partial?
100+
function redirect()
101+
{
102+
}
97103
}

0 commit comments

Comments
 (0)