Я пытаюсь отфильтровать часть входных данных, но хотел бы сделать это без анонимной функции. Первый пример ниже, но второй пример возвращает указанную ошибку. Я не хочу, чтобы пара дюжины строк кода проверки сидела непосредственно внутри моих правил, поэтому я хотел бы, чтобы это было сделано (как во втором примере, который я пытаюсь реализовать.Yii2 Пользовательское правило фильтра без анонимной функции
Пример 1 (работает, но не работает то, что я хочу сделать)
public function rules()
{
return [
['roles', 'filter', 'filter' => function ($value) {
// Do some stuff to remove invalid roles
return $value;
}];
}
Пример 2 (не работает, но это то, что я хотел бы сделать)
public function rules()
{
return [
['roles', 'filter', 'filter' => 'checkRoles'],
];
}
public function checkRoles($value)
{
// Do some stuff to remove invalid roles
return $value;
}
Ошибка возвращается в примере 2 выше
call_user_func() expects parameter 1 to be a valid callback,
function 'validateRoles' not found or invalid function name
Почему второй пример выше не работает? Вернее, что более важно, что мне нужно изменить, чтобы получить второй пример?
Точно, что мне нужно, спасибо! Английская ссылка для тех, кто интересуется http://php.net/manual/en/language.types.callable.php – justinvoelker