У меня есть файл, который выходит из класса Request
для настройки моего правила проверки, в котором я проверил поле типа файла с максимальным размером и определенной длиной для имени файла.Чтобы упростить попытку с
php artisan tinker
Вы можете воспроизвести ошибку:
Validator::make(['file' => Illuminate\Http\UploadedFile::fake()
->create('page.pdf')],['file' => 'regex:/^.*$/'])->fails();
С помощью этого кода динамически с помощью фейера генерировать файл для загрузки и дать ему конкретное имя, применитьпроверки и попробуйте проверить, не удалось или нет.
Используемое регулярное выражение указывает, что имя может быть любым символом с открытым измерением без ограничений.Это должно вернуть false
, поскольку оно не должно завершиться ошибкой.Однако это не удается.
Чтобы узнать, в порядке ли я в отношении регулярного выражения, мы можем использовать:
preg_match('/^.*$/', 'page.pdf');
В моем случае он возвращает 1
, указывая, что он нашел соответствиепотому что в документации указано, что 1 означает, что найдено совпадение, 0 - нет, и false - что произошла ошибка.
Так что же я могу сделать неправильно, если использовать regex
для проверки UploadedFile с Laravel вмои юнит-тесты?