Laravel Illuminate \ Validation \ Rule not found

时间:2016-11-14 10:36:47

标签: php laravel laravel-validation

我正在尝试提交表单并验证内容。 在其中一个请求中,我需要制定一个特殊规则。 我按照文档说它使用unique并声明规则。

use Illuminate\Validation\Rule;

Validator::make($data, [
'email' => [
    'required',
    Rule::unique('users')->ignore($user->id),
],
]);

我正在尝试使用文档中的示例,但是我得到了这个错误:

Class 'Illuminate\Validation\Rule' not found

我宣布了行

use Illuminate\Validation\Rule;

在我的控制器中,但错误仍然存​​在。

6 个答案:

答案 0 :(得分:3)

您不必为此使用Rule类。

简单地遵循以下规则:

'email' => 'required|unique:users,email,' . $user->id

答案 1 :(得分:0)

Illuminate\Validation\Rule类已在Laravel 5.3+上添加。
我提醒您,您已经使用旧的laravel版本进行了测试。

请参阅问题(PR)15809:[5.3] Object based unique and exists rules for validation.

答案 2 :(得分:0)

我在版本v5.3上遇到了问题。我刚刚更新到最新的补丁程序版本(在我的情况下为v5.3.31),并且一切正常!

答案 3 :(得分:0)

    use Illuminate\Validation\Rule;

Validator::make($data, [
'email' => [
    'required',
    Rule::unique('users')->ignore($user->id),
],
]);

到目前为止,您所做的一切还可以,直到您添加行 “ Rule::unique('users')->ignore($user->id)

不起作用的唯一原因是因为您没有指定要唯一的列名。假设在数据库中,您要唯一的表用户的列名是“ email”。然后,您的代码应如下所示:

use Illuminate\Validation\Rule;

Validator::make($data, [
'email' => [
    'required',
    Rule::unique('users', 'email')->ignore($user->id),
],
]);

因此

//Right Way
"Rule::unique('users', 'email')->ignore($user->id)"

//Wrong Way
"Rule::unique('users')->ignore($user->id)"

答案 4 :(得分:-1)

您发布的示例中的Rule类用于验证唯一字段。例如,如果您有一封电子邮件,您将希望在表格中是唯一的,当您要编辑记录时,在保存时,将收到验证器错误,因为您正在保存已在数据库中的相同电子邮件。

您发布的示例:

use Illuminate\Validation\Rule;

Validator::make($data, [
'email' => [
    'required',
    Rule::unique('users')->ignore($user->id),
],
]);

与此案例相关,编辑记录并验证电子邮件(表用户中唯一)。此示例避免针对同一用户验证电子邮件 -

要使用它,您必须添加该类(不包括在laravel安装程序中)。 Here你拥有它。

在您的问题中,您说的是使用唯一规则。唯一规则适用于表格,电子邮件,个人身份识别(法律)等必须具有唯一性的字段。验证您是否需要唯一规则。

答案 5 :(得分:-2)

为什么不尝试这样的方法:

$validator = Validator::make($request->all(), [
    'email' => 'required|unique:<table_name>',
]);

if ($validator->fails()) {
    ...
}

如果你的列也被命名为电子邮件laravel将自动知道,否则执行

required|unique:<table_name>,<column_name>

以下是文档验证部分的链接:https://laravel.com/docs/5.3/validation