【问题标题】:How to validate if email is already taken using Lumen?如何验证是否已使用 Lumen 接收电子邮件?
【发布时间】:2017-04-12 00:15:04
【问题描述】:

我是 Lumen (Laravel) 的新手。我想通过遵循 Lumen 文档来验证是否已接收电子邮件。

$this->validate($request, [
        'email' => 'required|unique:borrower|max:255',
        //'mobile' => 'required|unique:borrower|max:255'

    ]);

如果我在邮递员中执行以下行,它会显示为 422 unprocessed entity。

如何检查电子邮件是否已通过 Lumen 并在视图中显示错误消息?感谢大家的帮助!

【问题讨论】:

  • 请务必在询问之前查阅文档。

标签: php web-services laravel laravel-5.2 lumen


【解决方案1】:

borrower 是您的表名,电子邮件应该是唯一的吗?

根据文档:

unique:table,column,except,idColumn

验证中的字段在给定的数据库表上必须是唯一的。 如果未指定column 选项,将使用字段名称。

指定自定义列名:

'email' => 'unique:users,email_address'

https://laravel.com/docs/5.2/validation#rule-unique

【讨论】:

  • 是的,借用者是表名
  • email 是字段名吗?
  • email 是字段名
  • 看看storage/logs/的日志文件,你的代码中肯定有其他事情发生。
  • 根据laravel.com/docs/5.2/validation#rule-unique)document,我编辑了我的代码并在邮递员中执行,它显示的响应类似于 { "email": [ "The email has been taken." ] } .
【解决方案2】:

用于插入新条目

function validateUser($request){
    $validator = Validator::make($request->all(), [
        'email' => 'bail|required|email|unique:borrower,email',
    ]);
    return $validator;
}

用于更新

function validateUser($request){
    $validator = Validator::make($request->all(), [
        'email' => 'bail|required|email|unique:borrower,email,'.$request->id.',id',
    ]);
    return $validator;
}

两者结合

function validateUser($request){
    $id = isset($request->id) ? ','.$request->id.',id':'';
    $validator = Validator::make($request->all(), [
        'first_name' => 'required',
        'email' => 'bail|required|email|unique:borrower,email'.$id,
    ]);
    return $validator;
}

之后你可以通过$validator来显示所有错误。

保释:bail 检查第一个条件,如果失败,则不会检查电子邮件验证或唯一检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 2019-06-27
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多