验证两个相互依赖的输入

时间:2018-08-30 11:45:31

标签: laravel-5

我有两个输入'creditor'和'debtor',我希望用户至少在其中一个或两个中输入值。 这就是我正在使用的方法

404.html

如何使用laravel验证执行相同的操作 像示例中一样:

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();
    }

但是我想要的是,如果输入之一具有值,则无需检查其他

2 个答案:

答案 0 :(得分:0)

有很多方法可以解决此问题,但是我建议您使用$request->filled(),因为它会检查某个字段是否存在以及它是否有价值。因此,它会同时isset()!empty()

如果其中一个语句/条件为true,则|| AKA OR逻辑返回true,如果两个条件均为false,则返回false。

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();
}

编辑

您还可以使用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();
}

答案 1 :(得分:0)

您可以简单地使用OR运算符进行检查。