【问题标题】:Laravel putting 2 form values together and checking if their uniqueLaravel 将 2 个表单值放在一起并检查它们是否唯一
【发布时间】:2016-03-03 10:02:08
【问题描述】:

我最近开始使用 Laravel5.2,我想知道它们是否是一种实际检查 2 个表单值是否唯一的方法?我可以用一个来做到这一点,但我有一个用于名字的表单输入值和一个用于第二名字的表单输入值,我想要做的是如下所示..

$fullName = $firstName . ' ' . $secondName;
//check if $fullName is unique

我的意思是我希望只有一个表单值,您可以在其中输入展位的名字和第二个名字,但我觉得检查太多,无法实际检查表单输入中是否只有 2 个单词(2 个名字)。

那么有没有一种简单的方法来检查 firstName 和 secondName 放在一起是否是唯一的.. 如下所示

假设我的名字是 John,而我的第二个名字是 Smith,我如何检查“John Smith”在数据库中“用户名”列下的唯一性? (1 列)。

【问题讨论】:

  • 您的用户名字段是否包含空格?
  • 从上面的示例中,您在 firstname 和 second name 之间包含一个空格,我应该认为这是错误的,因为我知道您希望用户名是 firstnamesecondname
  • 其次,如果有人输入了第三个名字,那么你也想将它连接起来会发生什么?
  • 第三,你有没有考虑过很多不同的人有相同的姓和名

标签: php mysql laravel laravel-5 laravel-5.2


【解决方案1】:
$fullName = $firstName . ' ' . $secondName;

if(DB::table('users')-> where('username',$fullName)->first()){
  return ('Its repeated');
}else{
  return('its unique');
}

如果您有模型,只需更改:

DB:table()

对于您的模型,类似于:

Users::where('username',$fullName)->first();

【讨论】:

    【解决方案2】:

    您可以使用Validator查看:

    $arr = ['username'=>'John Smith'];
    $rules = ['username'=>'unique:users'];
    $message = ['username.unique'=>'Type your error here']; //new
    //$validator = Validator::make($arr,$rules);
    $validator = Validator::make($arr,$rules, $message);
    if ($validator->fails()) {
         return $validator->messages();
    }
    

    【讨论】:

    • 使用您的代码进行了一些修改,我得到了它的工作,尽管所有页面显示都是 "{"username":["The username has been used."]}" 有什么办法让它显示为实际错误?像其他错误一样..
    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2011-08-21
    • 2021-07-29
    • 1970-01-01
    • 2017-04-02
    • 2020-11-16
    相关资源
    最近更新 更多