javascript - 调用未定义的方法 Illuminate\Http\RedirectResponse::validate()

标签 javascript php laravel

我希望当验证器失败时,转到 home.blade.php 中注册表单的同一部分,而不是页面的开头。

有人可以帮我做到这一点吗? 注册 Controller .php

protected function validator(array $data)
{
    $validator =  Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'phone' => ['required', 'string'],
    ]);
    if ($validator->fails()) {
            return redirect('/#register')
                        ->withErrors($validator)
                        ->withInput();
        }
}


/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
protected function create(array $data)
{
    $customization = New Customization();
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'phone' => $data['phone'],  
        'password' => Hash::make($data['password']),
        'cuenta' => $data['cuenta'],
        'avatar' => "https://i0.wp.com/www.winhelponline.com/blog/wp-content/uploads/2017/12/user.png?fit=256%2C256&quality=100&ssl=1",
    ]);
        $customization->user_id = $user->id;
        $customization->save();
    return $user;
}

这是 laravel 上的错误:

请问我需要一些帮助

Error Laravel

最佳答案

只需从您的验证器函数中删除以下内容:

if ($validator->fails()) {
    return redirect('/#register')
        ->withErrors($validator)
        ->withInput();
}

验证器函数期望返回 \Illuminate\Contracts\Validation\Validator 的实例。

因此更改为:

return Validator::make([
    // Your rules here
]);

Controller 将在失败时自动重定向回来并显示错误。

如果您想在失败时重定向到其他地方,您可以通过在 Controller 中添加以下内容来覆盖 register 方法:

public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        return redirect('/#register')
            ->withErrors($validator)
            ->withInput();
    }

    event(new Registered($user = $this->create($request->all())));

    $this->guard()->login($user);

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

关于javascript - 调用未定义的方法 Illuminate\Http\RedirectResponse::validate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56811764/

相关文章:

javascript - 我的应用无法多次向 Firebase 发送相同的数据结构

php - 如何将日期 (2020-11-23T13 :26:02. 000Z) 格式化为 Y-m-d h :i:s in laravel using Carbon?

javascript - Laravel 5.2 - 在 ajax 请求后从 Controller 返回 View

javascript - PHP 登录脚本错误地显示 HTML 代码

php - jquery翻转!组件 : highchart is no longer interactive?

php - 如何在浏览器中检索数据路径?

javascript - JSON.parse 无效字符与有效 JSON?

php - 为什么 PDO 在这里只返回一行?

php - Laravel auth 中间件使用了错误的数据库

javascript - 在输入单选更改时禁用部分中的所有元素