繁体   English   中英

后端(Laravel Jetstream)发生(验证)错误后,如何返回注册页面显示错误状态?

[英]After a (validation) error occurs in the backend (Laravel Jetstream), how to return back to register page showing the error as status?

错误图像

我在 jetstream 寄存器中添加了电话号码列并使其独一无二。 因此,用户表中不会有相同的电话号码。

我尝试注册相同的电话号码进行测试,但错误来了。 所以它的工作。 但是我如何返回注册页面并将状态放在那里而不是 Laravel 错误页面。


namespace App\Actions\Fortify;

use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\CreatesNewUsers;
use Laravel\Jetstream\Jetstream;

class CreateNewUser implements CreatesNewUsers
{
    use PasswordValidationRules;

    /**
     * Validate and create a newly registered user.
     *
     * @param  array  $input
     * @return \App\Models\User
     */
    public function create(array $input)
    {
        Validator::make($input, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => $this->passwordRules(),
            'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['accepted', 'required'] : '',
        ])->validate();

        return User::create([
            'name' => $input['name'],
            'email' => $input['email'],
            'password' => Hash::make($input['password']),
            'phonenum' => $input['phonenum']
        ]);
    }
}

根据您共享的代码片段。 验证器正在验证其他属性,但不验证电话号码。 所以添加电话号码字段,它应该使用错误属性重定向回来。 您将像访问所有其他属性一样访问 error 属性。

        Validator::make($input, [
            'phonenum' => 'required,unique:users',
            'name' => ['required', 'string', 'max:255'],
             ....
        ])->validate();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM