Конечно это возможно!Как показал Киран, вы можете просто написать функции в своем классе модели, которые принимают параметры.
Просто имейте в виду, что ваш контроллер должен сначала проанализировать / проверить эти параметры, дополнительная проверка не должна быть включена в вашу модель.Ваша модель должна строго использоваться для записи и чтения из БД.
Таким образом, в качестве хорошей практики вы должны передавать только те аргументы, которые содержат фактические данные для хранения или использования в ваших запросах.
Я обычно пишу разные функции для разных случаев ГДЕ.Например:
select($id){}
select_by_name($name){}
...
Это делает вашу модель понятной.Единственное исключение, которое я делаю, - это ограничение вашего результата.Во всех моих моделях имеется функция выбора всех записей с возможностью передачи еще двух переменных для целей нумерации страниц:
select_all($start=null,$limit=null){
$qry = "SELECT * FROM ...";
if($start != null) $qry .= " LIMIT ?,?";
return $this->db->query($qry,func_get_args());
}