Проверка - имя файла требуется, если файл для загрузки имеет файл - PullRequest
0 голосов
/ 21 октября 2019

У меня есть контроллер формы для инвентаря, где люди могут добавлять предметы и добавлять счета, руководства и т. Д. При создании предметов. Моя проблема в том, что я тоже хочу получить имя файла (например, Билла для загруженного файла), но я хочу только требовать его, если у них действительно есть файл, выбранный в форме.

мой код прямо сейчасвыглядит так:

Я попробовал все, как required_unless, required_if, но ничего не работает. Может быть, я делаю что-то не так или моя идея просто не работает с этими правилами проверки?

Проверка в контроллере:

public function save(Request $request)
    {
        $validatedData = $request->validate([
            'file' => 'nullable|file',
            'files_label' => 'required_unless:file,empty|string',
        ]);

Сообщение об ошибке в моем html-файле: files_label должен бытьстрока (так что я думаю, что она все еще требуется) ...

мой клинок выглядит так

<input class="form--textinput" name="files_label" id="files_label" value="{{old('files_label')}}">
<input type="file" class="custom-file" name="file" id="file" value="{{old('file')}}">

Как я могу заставить его работать так, просто требуется file_label, если я выбрал файлзагрузить?

ОБНОВЛЕНИЕ 1: тоже попробовал с type = "text". все еще появляется сообщение об ошибке: «Метка файлов должна быть строкой».

ОБНОВЛЕНИЕ 2: Итак, я удалил требование типа «строка», и теперь оно выглядит так, как будто оно работает. он не хочет, чтобы поле files_label было строкой. required_unless теперь работает так же, как выглядит. Может кто-нибудь сказать мне, почему это так? Зачем ему строка, если поле вообще не требуется?

код теперь выглядит так:

'file' => 'nullable|file',
'files_label' => 'required_unless:file,',

1 Ответ

0 голосов
/ 21 октября 2019

Я думаю, вам нужно required_with в этом случае. как это

$validatedData = $request->validate([
                'file' => 'nullable|file',
                'files_label' => 'required_with:file,empty|string',
            ]);

https://laravel.com/docs/5.5/validation#rule-required-with

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...