Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.4有时“要求验证,但未提出”;空";输入_Php_Laravel_Validation_Laravel 5.4 - Fatal编程技术网

Php Laravel 5.4有时“要求验证,但未提出”;空";输入

Php Laravel 5.4有时“要求验证,但未提出”;空";输入,php,laravel,validation,laravel-5.4,Php,Laravel,Validation,Laravel 5.4,我在验证请求中有时只会出现的输入时遇到问题 // Controller public function update(Request $request, User $user) { $updateResult = $user->updateUser($request); return dd($updateResult); } // User Model protected $validation = [ 'rules' => [ '

我在验证请求中有时只会出现的输入时遇到问题

// Controller
public function update(Request $request, User $user)
{    
    $updateResult = $user->updateUser($request);
    return dd($updateResult);
}

// User Model

protected $validation = [
    'rules' => [
        'email' => [
            'sometimes',
            'email',
            'required',
        ],
        'password' => [
            'sometimes',
            'min:6',
            'required',
        ],
        'first_name' => [
            'sometimes',
            'required',
        ],
        'last_name' => [
            'sometimes',
            'required',
        ],
    ],
    'messages' => [
        'email.required' => 'An email is required.',
        'email.email' => 'The email must be valid.',
        'password.required' => 'A password is required.',
        'password.min' => 'Your password must be at least six (6) characters long.',
        'first_name.required' => 'Your first name is required.',
        'last_name.required' => 'Your last name is required.',
    ],
];

public function updateUser(Request $request)
{
    $validation = Validator::make($request->all(), [
        $this->validation['rules'],
        $this->validation['messages'],
    ]);

    if ($validation->fails())
    {
        return $validation;
    }

    else
    {
        return "OK";
    }
}
因此,在某些更新页面中,$request->all()只包含这些字段的一个子集。但是,即使存在字段,但值为null,也不会触发required

[
    'first_name' => null,
    'last_name' => 'Davidson',
    'job_title' => 'Tech Support',
]
上面的请求数组将返回“OK”。。。如果我有时从字段中删除,那么当发送部分输入请求时,它会失败,说字段是必需的

我正在清除此处缺少的内容,但通过阅读文档,我认为我已经正确配置了:

在某些情况下,您可能希望对 仅当输入数组中存在该字段时才使用该字段。速 为此,请将“有时”规则添加到规则列表中:

$v=验证器::生成($data、[ “电子邮件”=>“有时|必需|电子邮件”,])


在Laravel 5.4中,空字符串由ConvertEmptyStringsToull中间件转换为Null。。。这可能会给你带来一些问题

您应该将nullable添加到所有可选验证中


希望这有助于

在Laravel 5.4中,通过ConvertEmptyStringsToull中间件将空字符串转换为Null。。。这可能会给你带来一些问题

您应该将nullable添加到所有可选验证中


希望这有帮助

您面临的问题仅仅是由于调用验证程序时出错。第二个参数不是您传递的多维数组。规则数组和消息数组是独立的参数

$validation = Validator::make($request->all(), [
    $this->validation['rules'],
    $this->validation['messages'],
]);
应该由

    $validation = Validator::make($request->all(),
        $this->validation['rules'], $this->validation['messages']);

您面临的问题仅仅是由于您对验证器的调用中的错误造成的。第二个参数不是您传递的多维数组。规则数组和消息数组是独立的参数

$validation = Validator::make($request->all(), [
    $this->validation['rules'],
    $this->validation['messages'],
]);
应该由

    $validation = Validator::make($request->all(),
        $this->validation['rules'], $this->validation['messages']);
永远不会像预期的那样工作。有时表示:如果有什么事情发生,下一条规则是什么?在这种情况下,“必需”。需要什么?将此更改为:

'first_name' => [
        'sometimes',
        'required',
        'min:1',
    ],
如果没有输入,空值仍然是空值,并且不会失败。如果要在表中保留字段的值以进行更新,请在表单中填充输入值

null值作为
'
发送,并由app\Http\kernel.php中间件中的
转换器ptuptystringstonull::class
设置为null

永远不会像预期的那样工作。有时表示:如果有什么事情发生,下一条规则是什么?在这种情况下,“必需”。需要什么?将此更改为:

'first_name' => [
        'sometimes',
        'required',
        'min:1',
    ],
如果没有输入,空值仍然是空值,并且不会失败。如果要在表中保留字段的值以进行更新,请在表单中填充输入值


null值作为
'
发送,并由app\Http\kernel.php中间件中的
转换器ptuptystringstonull::class
设置为null

这就是我喜欢stackoverflow的地方。。。一双额外的眼睛。这真让我发疯。我真的不知道这个数组是怎么来的,一定是因为建立规则的肌肉记忆。接得好!再次感谢。这就是我喜欢stackoverflow的地方。。。一双额外的眼睛。这真让我发疯。我真的不知道这个数组是怎么来的,一定是因为建立规则的肌肉记忆。接得好!再次感谢。有时规则和要求是完全有效的场景。它基本上是这样说的:“如果存在一个字段,那么它就不能为null或为空。”有时规则和必需的规则是完全有效的场景。它基本上是这样说的:“如果存在一个字段,那么它不能为null或为空”我认为指向文档的链接正常:我认为指向文档的链接正常: