Проверьте два входа, которые зависят друг от друга - PullRequest
0 голосов
/ 30 августа 2018

У меня есть два входа «кредитор» и «должник», я хочу, чтобы пользователь указывал значение хотя бы в одном из них или в обоих. это подход, который я использую

if($request->input('creditor')==Null && $request->input('debtor')==Null){
        Session::flash('danger','Please add Value in one of the two inputs at least');
        return redirect()->back();
    }

Как сделать то же самое с проверкой Laravel как в примере:

 $request->validate([
        'creditor' => 'required',
        'debtor' => 'required',

    ]

но что я хочу, если один из входов имеет значение, нет необходимости проверять другой

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Вы можете просто проверить с оператором ИЛИ ..

0 голосов
/ 30 августа 2018

Существует много способов решения этой проблемы, но я рекомендую использовать $request->filled(), так как он проверяет, присутствует ли поле и имеет ли оно значение. Таким образом, это делает isset() и !empty() вместе.

Логика || AKA OR возвращает true, если одно из утверждений / условий истинно, и возвращает ложь, если оба условия ложны.

if($request->filled('creditor') || $request->filled('debtor')){
    // Either of the has value in it.
} else {
    Session::flash('danger','Please add Value in one of the two inputs at least');
    return redirect()->back();
}

EDIT

Вы также можете использовать required_without_all: foo, bar,

Пример:

$rules = array(
    'creditor' => 'required_without_all:debtor',
    'debtor' => 'required_without_all:creditor',
);

$validator = \Validator::make($request->all(), $rules);

if($validator->fails()){
    Session::flash('danger','Please add Value in one of the two inputs at least');
        return redirect()->back();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...