如何在 laravel 8 中添加带有 where 条件的验证规则?

Posted

技术标签:

【中文标题】如何在 laravel 8 中添加带有 where 条件的验证规则?【英文标题】:How to add validation rule with where condition in laravel 8? 【发布时间】:2022-01-24 05:18:33 【问题描述】:
    $validatedData = $this->validate($request, [
        'ldate' => 'required',
        'type' => 'required',
        'daytype' => 'required',
        'employee' => 'required', 'exists:leaves,bemployee'  //where condition i need here
        'bemployee' => 'required',
        'subject' => 'required',
        'content' => 'required',
    ]);

这是我的验证。表名是Leaves。 employee、bemployee 和 ldate 是表中的字段。

我如何在 ldate= $ldate 中检查 employee 作为 bemployee 存在?

提前致谢

【问题讨论】:

exists:bemployee,bemployee =>> bemployee 是表还是列或两者兼而有之? 我已编辑。叶子是表,员工是字段名 【参考方案1】:
$valid= Validator::make($request, [
        'contact'=> ['required',Rule::exists('tableName')->where(function ($query) use ($request) 
                        $query->where('column',$request->yourField);),
                    ],
    ],
);
if($valid->fails())
    // code
else
    // code

【讨论】:

我的代码没有变化。我需要那里的条件 为此,您需要像上面一样创建自定义验证 别忘了添加 use Illuminate\Support\Facades\Validator;

以上是关于如何在 laravel 8 中添加带有 where 条件的验证规则?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 在联合结果中添加 where 子句

如何在laravel中使用逗号分隔值的列上使用'where'

Laravel 6:如何将多个 where 子句添加到关系中

Laravel 4:将 where 子句添加到连接条件

Laravel如何在查询结果中添加新字段

如何处理带有斜线的 Laravel Eloquent “WHERE”查询? (Laravel 5.3)