-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Фильтр по >, >=, <, <= #342
Comments
Возможно есть смысл разделить фильтры Теоретически, обратная совместимость не должна пострадать. Не придется вводить новые фильтры |
Мне другая мысль пришла, можно сделать валидацию на число, и если пришло число, то оставляем старый вариант, а если не число, то DBAPI::escape() |
@Pathologic что думаешь? |
Мне нравится вариант @Ser1ous В целом это не принципиально, потому что в собственных фильтрах можно переопределить поведение. |
@Pathologic у этой валидации есть один косяк, она слишком замудренная. Чтобы максимально предугадать вариант который может придти изобрели вот такой костыль. http://sandbox.onlinephpfunctions.com/code/12e007d7e9ee450a5304a13d904c14711546d5a0 |
Добавил в костыль еще одну группу данных для теста http://sandbox.onlinephpfunctions.com/code/9feb7816c2d1f2eaa491fffedce0685d63153d70 <?php
function test($str) {
echo ((is_numeric($str) || is_numeric(trim(str_replace(',','.',$str)))) ? "float" : "string"),
"\t",
$str,
PHP_EOL;
}
test('2010-02-15'); // string
test('2010.02.15'); // string
test('2010.02'); // float
test('2010,02'); // float
test(''); // string
test('0'); // float
test('10 '); // float
test('b3'); // string
test('4a'); // string
test('.10'); // float
test(',10'); // float
test(' 10'); // float
test('010'); // float |
Ну и как теперь блин с этими костылями жить? Может не стоит за пользователей думать? |
В общем предлагаю не тыкать палочкой то, что уже работает более 5 лет еще с версии 1.1.1 Давайте просто добавим новые фильтры для Заодно и конкретно в ТВ запихнуть еще целый комплект |
https://github.com/AgelxNash/DocLister/blob/master/assets/snippets/DocLister/core/filterDocLister.abstract.php#L153-L168
Эти фильтры приводят входящие данные к числу с плавающей точкой.
Но иногда встречаются задачи когда необходимо по дате фильтровать. И если мы превратим дату в число, то получим ошибку.
Данные:
https://monosnap.com/file/89D7un9U8OmUxYcnEUFeeMCYXZkg7x
Пример запроса:
https://monosnap.com/file/Qsdd50tPwBowMW4MEy8zdttGhyYQBg
The text was updated successfully, but these errors were encountered: