当html输入名称与列名称不同时,请使用Laravel验证

时间:2018-01-11 20:24:01

标签: php laravel validation

我无法在Laravel应用程序中通过required验证。

这是我的验证规则......

$rules = [
   'email' => 'required|unique:members|max:100',
];

特定列名称为email。 HTML页面输入字段名称为emailAddress

在这些情况下该怎么办?如何告知此验证要检查哪个请求字段?

谢谢!

3 个答案:

答案 0 :(得分:3)

发现问题......

这是验证检查的输入字段名称。不是列名。

此处的问题是电子邮件字段的unique验证规则。我必须明确哪个列来检查已存储的电子邮件。

喜欢这个

unique:members,email

我必须在表名后用,(逗号)分隔后使用列名。

所以,规则就像

$rules = [
    'emailAddress' => 'required|unique:members,email|max:100',
];

就是这样!

答案 1 :(得分:1)

您不会在验证中检查列名,只需使用输入名称。

$rules = [
   'emailAddress' => 'required|unique:members|max:100',
];

我想更清楚一点:Request实例是经过检查的。验证不与数据库交互,它与请求

交互

答案 2 :(得分:1)

您可以将name属性更改为email

或者你可以使用这样的验证规则:

'emailAddress' => 'required|unique:members|max:100',

然后在控制器方法中执行此操作:

Model::create([
    'email' => $request->emailAddress,
]);