加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 使用2个字段的Laravel表单验证

发布时间:2021-08-28 05:09:06 所属栏目:大数据 来源: https://www.jb51.cc
导读:如何在2个字段上拥有唯一的验证规则? 一种.该应用程序不应该允许两个人具有相同的名字和姓氏. 允许用户仅填写名字或仅填写姓氏.因为用户可能只有其中一个. 湾但是,如果用户只输入名字(格伦),则表格中的其他人不应该具有相同的名字(名字=’格伦’,姓氏=空).

如何在2个字段上拥有唯一的验证规则?

一种.该应用程序不应该允许两个人具有相同的名字和姓氏.

允许用户仅填写名字或仅填写姓氏.因为用户可能只有其中一个.

湾但是,如果用户只输入名字(格伦),则表格中的其他人不应该具有相同的名字(名字=’格伦’,姓氏=空).另一个’格伦史密斯’好吧.

我尝试了以下规则.当两个字段(名字和姓氏)都不为空时,它很有用:

'firstName' => 'unique:people,firstName,NULL,id,lastName,' . $request->lastName

此规则在b上失败.当只有一个字段时.

任何提示?

解决方法:

内置的唯一验证器不会真正支持您尝试做的事情.它的目的是确保单个有效在数据库中是唯一的,而不是两个值的组合.但是,您可以创建一个custom validator:

Validator::extend('uniqueFirstAndLastName', function ($attribute, $value, $parameters, $validator) {
    $count = DB::table('people')->where('firstName', $value)
                                ->where('lastName', $parameters[0])
                                ->count();

    return $count === 0;
});

然后,您可以使用以下命令访问此新规则

'firstName' => "uniqueFirstAndLastName:{$request->lastName}"

您可能会发现您可能需要稍微调整一下数据库查询,因为它未经测试.

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读